Python内置函数7
1.property
python内置的一个装饰器
可参考https://blog.csdn.net/u013205877/article/details/77804137
2.quit()
退出程序
>>> quit()
C:UserswyjDesktop mpABC>
3.repr(object)
将对象转化为供解释器读取的形式,返回一个对象的 string 格式
4.reversed(seq) seq -- 要转换的序列,可以是 tuple, string, list 或 range
返回一个反转的迭代器
5.round(x [, n])
x -- 数字表达式。
n -- 表示从小数点位数,其中 x 需要四舍五入,默认值为 0
返回浮点数x的四舍五入值
print ("round(70.23456) : ", round(70.23456)) print ("round(56.659,1) : ", round(56.659,1)) print ("round(80.264, 2) : ", round(80.264, 2)) print ("round(100.000056, 3) : ", round(100.000056, 3)) print ("round(-100.000056, 3) : ", round(-100.000056, 3))
输出结果
round(70.23456) : 70 round(56.659,1) : 56.7 round(80.264, 2) : 80.26 round(100.000056, 3) : 100.0 round(-100.000056, 3) : -100.0
6.setattr(object, name, value)
setattr 函数对应函数 getatt(),用于设置属性值,该属性必须存在
object -- 对象。
name -- 字符串,对象属性。
value -- 属性值
>>>class A(object): ... bar = 1 ... >>> a = A() >>> getattr(a, 'bar') # 获取属性 bar 值 1 >>> setattr(a, 'bar', 5) # 设置属性 bar 值 >>> a.bar 5
7.slice(start, stop[, step])
实现切片对象,主要用在切片操作函数里的参数传递
start -- 起始位置
stop -- 结束位置
step -- 间距
>>>myslice = slice(5) # 设置截取5个元素的切片 >>> myslice slice(None, 5, None) >>> arr = range(10) >>> arr [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> arr[myslice] # 截取 5 个元素 [0, 1, 2, 3, 4] >>>
8.sorted(iterable, key=None, reverse=False)
对所有可迭代的对象进行排序操作
iterable -- 可迭代对象。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
以下实例展示了 sorted 的最简单的使用方法:
>>>sorted([5, 2, 3, 1, 4]) [1, 2, 3, 4, 5] # 默认为升序
你也可以使用 list 的 list.sort() 方法。这个方法会修改原始的 list(返回值为None)。通常这个方法不如sorted()方便-如果你不需要原始的 list,list.sort()方法效率会稍微高一些。
>>>a=[5,2,3,1,4] >>> a.sort() >>> a [1,2,3,4,5]
另一个区别在于list.sort() 方法只为 list 定义。而 sorted() 函数可以接收任何的 iterable
>>>sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'}) [1, 2, 3, 4, 5]
利用key进行倒序排序
>>>example_list = [5, 0, 6, 1, 2, 7, 3, 4] >>> result_list = sorted(example_list, key=lambda x: x*-1) >>> print(result_list) [7, 6, 5, 4, 3, 2, 1, 0] >>>
要进行反向排序,也通过传入第三个参数 reverse=True:
>>>example_list = [5, 0, 6, 1, 2, 7, 3, 4] >>> sorted(example_list, reverse=True) [7, 6, 5, 4, 3, 2, 1, 0]
sorted 的应用,也可以通过 key 的值来进行数组/字典的排序,比如:
array = [{"age":20,"name":"a"},{"age":25,"name":"b"},{"age":10,"name":"c"}] array = sorted(array,key=lambda x:x["age"]) print(array)
输出结果:
[{'age': 10, 'name': 'c'}, {'age': 20, 'name': 'a'}, {'age': 25, 'name': 'b'}]
9.staticmethod(function)
返回函数的静态方法
该方法不强制要求传递参数,如下声明一个静态方法:
class C(object):
@staticmethod
def f(arg1, arg2, ...):
...
以上实例声明了静态方法 f,类可以不用实例化就可以调用该方法 C.f(),当然也可以实例化后调用 C().f()
class C(object): @staticmethod def f(): print('runoob'); C.f(); # 静态方法无需实例化 cobj = C() cobj.f() # 也可以实例化后调用
10.super(type[, object-or-type])
super() 函数是用于调用父类(超类)的一个方法。
super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。
MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。
type -- 类。
object-or-type -- 类,一般是 self
Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :
Python3.x 实例:
class A: pass class B(A): def add(self, x): super().add(x)
class A(object): # Python2.x 记得继承 object pass class B(A): def add(self, x): super(B, self).add(x)
运行结果
Parent Child HelloWorld from Parent Child bar fuction I'm the parent.
11.vars([object])
返回对象object的属性和属性值的字典对象
返回对象object的属性和属性值的字典对象,如果没有参数,就打印当前调用位置的属性和属性值 类似 locals()
12.zip([iterable, ...]) iterabl -- 一个或多个迭代器
>>>a = [1,2,3] >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>> zipped = zip(a,b) # 返回一个对象 >>> zipped <zip object at 0x103abc288> >>> list(zipped) # list() 转换为列表 [(1, 4), (2, 5), (3, 6)] >>> list(zip(a,c)) # 元素个数与最短的列表一致 [(1, 4), (2, 5), (3, 6)] >>> a1, a2 = zip(*zip(a,b)) # 与 zip 相反,*zip 可理解为解压,返回二维矩阵式 >>> list(a1) [1, 2, 3] >>> list(a2) [4, 5, 6] >>>
Python内置函数到此全部结束