Skip to main content
 首页 » 程序教程

Python中类和实例的内建函数大全

2016年06月25日29330

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。在Python的类和实例中,有很多的内建函数可供选择,下面一起来看看Python中类和实例的内建函数大全吧。

  • issubclass(sub,sup): 判断一个类是另一个类的子类或者子孙类,如果是就返回True,第二个参数可以使可能父类组成的元组,只要第一个参数是其中给定元组中任何一个候选类的子类时,就返回True。

  • isinstance(obj1,class1):判断一个对象是否是另一个给定类的实例.是就返回True。第二个参数应当是类。

  • hasattr()\getattr()\setattr()\delattr() ------ 系列函数可以在各种对象下工作,不限于类和实例。操作obj.attr时就相当于调用*attr(obj,'attr')系列函数。 示例代码:

#!/usr/bin/env python
# coding:utf-8
__author__ = "风轻情淡"


class MyClass(object):
    def __init__(self):
        self.foo = 100


myInst = MyClass()
hasattr(myInst, 'foo')  # True
getattr(myInst, 'foo')  # 100 setattr(myInst,'bar',200)
getattr(myInst, 'bar')  # 200 delattr(myInst,'bar')
hasattr(myInst, 'bar')  # False
  • dir(): 作用在实例上时,显示实例变量,还有实例所在的类及所有它的基类中定义的方法和类属性;作用在类上时,则显示类以及它的所有基类的__dict__中的内容。作用在模块上时,则显示模块的__dict__的内容。不带参数时,则显示调用者的局部变量。

  • super(type[,obj]) 函数:帮助找出相应的父类,然后方便调用相关的属性;super(MyClass,self).__init__()。

  • var()函数:与dir()类似。

类,实例及其他对象的内建函数

issubclass(sub,sup)    如果类sub是类sup的子类,则返回True,反之为False
isinstance(obj1,obj2) 如果实例obj1是类obj2或者obj2子类的一个实例;或者obj1是obj2的类型,则返回True;反之为Fasle
hasattr(obj,attr)   如果obj有属性attr(用字符串给出),返回True,反之,返回False
getattr(obj,attr[,default])  获取obj的attr属性;与返回obj.attr类似;如果attr不是obj的属性,如果提供了默认值,则返回默认值;不然就会引发一个异常 
setattr(obj,attr,val) 设置obj的attr属性值为val,替换任何已纯在的属性值;不然就创建属性;类似obj.attr = val
delattr(obj,attr)  从obj中删除属性attr,类似于del obj.attr
 dir(obj= None)   返回obj的属性的一个列表;如果没有给定obj,dir()则显示局部名字空间中的属性,也就是locals().keys()
 super(type,obj=None) 返回一个表示父类类型的代理对象;如果没有传入obj,则返回的super对象是非绑定的,反之,如果是以个type,issubclass(obj,type)必为True;否者isinstance(obj,type)就必为True
 vars(obj=None)    返回obj的属性及其值的一个字典;如果没有给出obj,vars()显示局部名字空间字典,也就是locals()

 以下是Python中类和实例的内建函数大全:

Python中类和实例的内建函数大全

Python中类和实例的内建函数大全

Python中类和实例的内建函数大全

Python中类和实例的内建函数大全

Python中类和实例的内建函数大全

评论列表暂无评论
发表评论