"""
62,tuple()将列表转换为元组。
语法:tuple( iterable )
"""
print(tuple([1, 2, 3, 4]))
print(tuple({1:2, 3:4}))# 针对字典 会返回字典的key组成的tuple
print(tuple((1, 2, 3, 4)))# 元组会返回元组自身
"""
63,type()如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。
语法:type(object)
type(name, bases, dict)
参数name -- 类的名称。bases -- 基类的元组。dict -- 字典,类内定义的命名空间变量。
返回值
一个参数返回对象类型, 三个参数,返回新的类型对象。isinstance() 与 type() 区别:type() 不会认为子类是一种父类类型,不考虑继承关系。isinstance() 会认为子类是一种父类类型,考虑继承关系。
如果要判断两个类型是否相同推荐使用 isinstance()。"""
# 一个参数实例
print(type(1))
print(type('pyer_up'))
print(type(["r","c"]))
type({"k":'ert'})
print(type(3) ==int)# 判断类型是否相等
# 三个参数
class X(object):
a =1
y =type('X', (object,), dict(a=1))# 产生一个新的类型X
#type与instance区别
class A:
pass
class B(A):
pass
print(isinstance(A(), A))# returns True
print(type(A()) == A)# returns True
print(isinstance(B(), A))# returns True
print(type(B()) == A)# returns False
"""
64,vars() 函数返回对象object的属性和属性值的字典对象。
语法:vars([object])
PS:不带参数调用 vars() 函数将返回包含局部符号表的字典。"""
class Person:
name ="John"
age =36
country ="norway"
x =vars(Person)
print(x)
print(vars())
"""
65,zip()接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
若传入参数的长度不等,则返回列表的长度和参数中长度最短的对象相同。"""
x=[1,2,3]
l=[1,2,3]
z=(1,2,3)
for iin zip(x,l,z):
print(i)
h=(1,2,3,4)
k=[1,2,3]
for iin zip(h,k):
print(i)
j = (1, 2, 3, 4)
for i in zip(j):
print(i)
#zip()配合*号操作符,可以将已经zip过的列表对象解压
x=[1,2,3]
y=[
'a','b','c']
z=[
4,5,6]
xyz=zip(x,y,z)
for iin xyz:
print(i)
h,j,k =zip(*xyz)
print(h,j,k)
x=[
5,6,7]
print([x]) #[x]生成一个列表的列表,它只有一个元素x
print([x]*3) #[x] * 3生成一个列表的列表,它有3个元素,[x, x, x]
for iin zip(*[x]*3):#zip(* [x] * 3)等价于zip(x, x, x)
print(i)
#应用,同时遍历两个可迭代序列,一般用于对比
name=['song','ping','python']
age=[
26,26,27]
for i,j in zip(name,age):
print(i,j)
"""
66,__import__():import作用:导入/引入一个python标准模块,其中包括.py文件、带有__init__.py文件的目录;__import__作用:同import语句同样的功能,
但__import__是一个函数,并且只接收字符串作为参数。
其实import语句就是调用这个函数进行导入工作的,import sys <==>sys = __import__('sys')。import导入的是一个标准模块,而标准模块的概念是一个文件夹里面必须包含__init__.py文件。它的作用更像是一种声明,且import模块进来之后,万一原本的模块有什么变化,可以通过reload()进行重新加载。__import__()作为一个函数,只能接受字符串参数,返回值可以直接用来操作,通常在动态加载的时候用到这个函数,最常见的情景就是插件功能的支持。__import__与import的对比import __import__
倾向 固定式声明 动态加载
适用场景 已经明确知道项目中哪些模块 模块可以动态插拔、动态引入运行
举例 import os #导入固有的os模块 __import__('employee').find(name='大哥')#动态加载刚安装的员工管理模块,并且查找一个叫“大哥”的人"""
内建函数,到此就结束了!有些函数是需要功底才可以理解清楚,理解不了的,先放过吧!