一:判断对象或者变量类型:使用type()
二:获得一个对象的所有属性和方法:使用dir(对象)
三:获取长度:len()函数来源于类定义中的方法:__len__,自定义的类对象如果想使用len方法,可以在类中定义__len__方法。
四:配合getattr(),setattr(),hasattr(),我们可以直接操作一个对象的状态。
class MyObject(object):
def __init__(self):
self.x=9
def power(self):
return self.x*self.x
obj=MyObject()
hasattr(obj,'x')
Out[10]: True
setattr(obj,'y',19)
getattr(obj,'y')
Out[12]: 19
五:类属性:在类中直接定义的属性,这个属性所有对象都可以访问。
实例属性:只属于该对象的属性,只能是该对象才能够访问。
六:实例方法:可以给一个对象添加方法:
class Student(object):
pass
s=Student()
s.name='Michael'
print(s.name)
def set_age(self,age):
self.age=age
from types import MethodType
s.set_age=MethodType(set_age,s)
s.set_age(25)
也可以给所有对象都添加这个方法:
def set_score(self,score):
self.score=score
Student.set_score=MethodType(set_score,Student)
七:限制添加属性__slots__变量
class Student(object):
__slots__=('name','age')#用tuple定义允许绑定的属性名称