|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
小牛有话说:
各位鱼油,大家好。我是小牛,如果您已经看完或者正在看鱼神的《零基础入门学习Python》视频,想随时复习前面的知识点却又不想花太多时间和精力重翻视频,来这里《零基础入门Python学习》整理瞅瞅小牛呕心做的的视频内容的总结吧^_^,如果觉得有用的话,可以点击所属淘贴右上角的“订阅”按钮,这样以后就能够随时看到小牛做的最新的整理了。
年底恰逢各种项目结题,近两周内没有时间和精力更新帖子,这里对关注小牛帖子鱼油们说声抱歉了,后面小牛会尽力加快更新速度,争取在11月份更完类和对象部分。
本期主要内容导读:
这一期我们归纳一下鱼神第四十讲“类和对象:一些相关的BIF”。这一期里面鱼神主要是介绍了Python类中的一些内置函数用法,主要包括issubclass(),isinstance,hasattr(),getattr(0,setattr()和property()等。下面将详细介绍各个内置函数的意义和用法。
1. issubclass(class,classinfo)判断一个类是否是另一个类或类组成的元组的其中一个类的子类的方法,是则返回True,不是则返回False。这里面需要注意的是,第一个参数必须是类名,第二个参数可以是类名或者由类组成的元组,Python默认一个类是本身的子类,举例说明:
>>> class A:
pass
>>> class B(A):
pass
>>> issubclass(B,A)
True
>>> issubclass(B,object)
True
>>> issubclass(B,B)
True
>>> issubclass(A,B)
False
2. isinstance(object,class)判断一个对象是否属于一个类或者类组成的元组内的某个类,其中第一个参数是对象名,第二个参数是类名或元组,举例说明:
>>> class A:
pass
>>> class B(A):
pass
>>> a = A()
>>> b = B()
>>> isinstance(a,A)
True
>>> isinstance(a,B)
False
>>> isinstance(b,B)
True
>>> isinstance(b,A)
True
3. hasattr(object,name)判断一个对象内是否具有某个变量,getattr(object,name[,default])返回一个对象内某个成员的值,setattr(object,name,value)设置一个对象内某个变量的值,delattr(object,name)删除一个对象的某个变量;其中第一个参数为对象名,第二个参数为一个变量组成的字符串,举例说明:
>>> class C:
def __init__(self,size):
self.size = size
>>> c1 = C(3)
>>> hasattr(c1,'size')
True
>>> getattr(c1,'size')
3
>>> setattr(c1,'size',5)
>>> getattr(c1,'size')
5
>>> delattr(c1,'size')
>>> getattr(c1,'size','对象%s内不存在%s变量'%('c1','size'))
'对象c1内不存在size变量'
4. property(fget=None,fset=None,fdel=None,doc=None) 用属性设置属性,第一个参数为获取对象属性的方法名,第二个参数为设置对象属性的方法名,第三个参数为删除对象属性的方法名,可以将其赋值给一个对象属性,那么当其被对一个对象调用时则调用对象内定义的获取对象属性方法,当对其进行赋值时则调用设置对象属性的方法,当用del语句删除时则调用删除对象属性的方法,举例说明:
>>> class Case:
def __init__(self,size):
self.size = size
def getSize(self):
print('正在调用获得对象属性的方法!')
return self.size
def setSize(self,value):
print('正在调用设置对象属性的方法!')
self.size = value
def delSize(self):
print('正在调用删除对象属性的方法!')
del self.size
x = property(getSize,setSize,delSize)
>>> s1 = Case(3)
>>> s1.x
正在调用获得对象属性的方法!
3
>>> s1.x = 5
正在调用设置对象属性的方法!
>>> s1.x
正在调用获得对象属性的方法!
5
>>> del s1.x
正在调用删除对象属性的方法!
>>> getattr(s1,'size','属性不存在!')
'属性不存在!'
|
|