编玩边学

>

资讯中心

>

少儿编程

> 正文

Python内置函数大全(10)

2019-09-19 来源:编玩边学

super() 函数是用于调用父类(超类)的一个方法。

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

super(type[, object-or-type])

type -- 类。

object-or-type -- 类,一般是 self


Python3.x 实例:

class A:

def add(self, x):

y = x+1

print(y)

class B(A):

def add(self, x):

super().add(x)

b = B()

b.add(2) # 3


tuple 函数将列表转换为元组。

tuple( seq )

seq -- 要转换为元组的序列。


>>>list1= ['Google', 'Taobao', 'Runoob', 'Baidu']

>>> tuple1=tuple(list1)

>>> tuple1

('Google', 'Taobao', 'Runoob', 'Baidu')


type() 函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象。

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

type(object)

type(name, bases, dict)

name -- 类的名称。

bases -- 基类的元组。

dict -- 字典,类内定义的命名空间变量。


# 一个参数实例

>>> type(1)

<type 'int'>

>>> type('runoob')

<type 'str'>

>>> type([2])

<type 'list'>

>>> type({0:'zero'})

<type 'dict'>

>>> x = 1

>>> type( x ) == int # 判断类型是否相等

True


# 三个参数

>>> class X(object):

... a = 1

...

>>> X = type('X', (object,), dict(a=1)) # 产生一个新的类型 X

>>> X

<class '__main__.X'>


type() 与 isinstance()区别:

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


vars() 函数返回对象object的属性和属性值的字典对象。

vars([object])

object -- 对象


>>>print(vars())

{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, '__package__': None}

>>> class Runoob:

... a = 1

...

>>> print(vars(Runoob))

{'a': 1, '__module__': '__main__', '__doc__': None}

>>> runoob = Runoob()

>>> print(vars(runoob))

{}


zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

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]

>>>


__import__() 函数用于动态加载类和函数。如果一个模块经常变化就可以使用 __import__() 来动态载入。

__import__(name[, globals[, locals[, fromlist[, level]]]])

name -- 模块名


a.py 文件代码:

#!/usr/bin/env python

#encoding: utf-8

import os

print ('在 a.py 文件中 %s' % id(os))

test.py 文件代码:

#!/usr/bin/env python

#encoding: utf-8

import sys

__import__('a') # 导入 a.py 模块

执行 test.py 文件,输出结果为:

在 a.py 文件中 4394716136

关键词阅读

Python内置函数大全

版权及免责声明

1、"编玩边学"上的内容,包括文章、资料、资讯等,本网注明"来源:编玩边学"的,其版权均为"编玩边学"或深圳市编玩边学教育科技有限公司所有,任何公司、媒体、网站或个人未经授权不得转载、链接、转贴或以其他方式使用。已经得到"编玩边学"许可的媒体、网站,在使用时必须注明"来源:编玩边学",违者本网站将依法追究责任。

2、"编玩边学" 未注明"来源:编玩边学"的文章、资料、资讯等均为转载,本网站转载出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如其他媒体、网站或个人从本网站下载使用,必须保留本网站注明的"稿件来源",并自负版权等法律责任。如擅自篡改为" 来源:编玩边学 " ,本网站将依法追究其法律责任。

3、如果本网所转载内容侵犯了您的权益,请与我们联系team@codepku.com,我们将及时处理。