内置函数续2

1、bool()函数用于将给定参数转化为布尔类型,如果没有参数,返回False。bool是int的子类

2、exec(object, [ , globals [ , locals ] ]) , objects必选参数, 必须是字符串或code对象,如果是字符串会先被解析为一组python语句,然后再执行,如果是code对象,则会直接被执行;globals可选参数,必须是一个字典对象

x = 10
expr = """
z = 30
sum = x + y + z
print(sum)
"""
def func():
    y = 20
    exec(expr)
    exec(expr, {'x': 1, 'y': 2})
    exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4})
    
func()

执行结果是

60
33
34

3、isinstance(object, classinfo)函数判断一个对象是否是一个已知的类型,类似于type,object实类对象,classinfo可以是直接或间接类名、基本类型或者由它们组成的元组。

与type的区别:type()不会认为子类是一种父类关系,不考虑继承关系 ;isinstance()会认为子类是一种父类类型会考虑继承关系。如果要判断两个类型是狗相同推荐使用isinstance()

>>>a = 2
>>> isinstance (a,int)
True
>>> isinstance (a,str)
False
>>> isinstance (a,(str,int,list))    # 是元组中的一个返回 True
True
class A:
    pass
 
class B(A):
    pass
 
isinstance(A(), A)    # returns True
type(A()) == A        # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False

4、ord() 以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值

>>>ord('a')
97
>>> ord('b')
98
>>> ord('c')
99

5、sum(iterable[ , start ]),iterable可迭代的对象如:列表、元组、集合。start指定相加的参数,如果没有设置这个值,默认为0

>>>sum([0,1,2])  
3  
>>> sum((2, 3, 4), 1)        # 元组计算总和后再加 1
10
>>> sum([0,1,2,3,4], 2)      # 列表计算总和后再加 2
12

6、bytearray([ source[ , encoding [ , errors ] ] ]), 

如果 source 为整数,则返回一个长度为 source 的初始化数组;

如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;

如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;

如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。

如果没有输入任何参数,默认就是初始化数组为0个元素。

>>>bytearray()
bytearray(b'')
>>> bytearray([1,2,3])
bytearray(b'\x01\x02\x03')
>>> bytearray('runoob', 'utf-8')
bytearray(b'runoob')

7、issubclass(class, classinfo)方法用于判断参数class是否是类型参数 classinfo 的子类

class A:
    pass
class B(A):
    pass
    
print(issubclass(B,A))    # 返回 True

8、pow(x,y[ , z ])方法返回(x的y次方) 的值。如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z

9、super()函数式用于调用父类(超类)的一个方法

super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。

MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表

猜你喜欢

转载自blog.csdn.net/qwerLoL123456/article/details/81675066
今日推荐