1、python类有静态数据、属性
1.1、获取属性的方法有两种,一种是dir(类名),一种是类名.__dict__
class MyClass(object):
'MyClass class definition' #MyClass 类定义
myVersion = '1.1' # static data 静态数据
def showMyVersion(self): # method 方法
print MyClass.myVersion
前者返回的是类的属性列表,后者返回是属性字典,键是属性名,值是相应的属性对象的数据值。
2、如果说类是一种数据结构定义类型,那么实例则声明了一个这种类型的变量。换言之,实例是有生命的类,Python 严格要求, 没有实例, 方法是不能被调用的
2.1、__init__()应当返回 None
如果定义了构造器,它不应当返回任何对象,因为实例对象是自动在实例化调用后返回的。相应地,__init__()就不应当返回任何对象(应当为 None);否则,就可能出现冲突,因为只能返回实例。
类实现变化影响实例属性 实例属性变化不影响类属性3、类属性与实例属性,修改类属性不要通过修改实例属性来实现。
4、绑定与方法调用
4.1、方法仅仅是类内部定义的函数,这意味着方法是类属性而不是实例属性;
4.2、方法只有在其所属的类拥有实例时,才能被调用,当存在一个实例时,方法才被认为是绑定到那个实例了。没有实例时方法就是未绑定的;
4.3、任何一个方法定义中的第一个参数都是变量 self,它表示调用此方法的实例对象。
5、类、实例和其他对象的内建函数
5.1、issubclass(sub, sup),sub是sup的子类,确定返回True,否则饭后False,sup可以是一系列父类的元祖,只要sub是其中一个的子类,则返回True。
5.2、isinstance()
5.2.1、isinstance(obj1, obj2),obj1 是类 obj2 的一个实例,或者是 obj2 的子类的一个实例时,返回 True(反之,则为 False);
5.2.2、isinstance(obj1, obj2),检查一个对象 obj1 是否是obj2 的类型,isinstance()也可以使用一个元组(tuple)作为第二个参数,如果第一个参数是第二个参数中给定元组的任何一个候选类型或类的实例时,就会返回 True。
5.3、callable(),确定一个对象是否可以通过函数操作符(())来调用。如果函数可调用便返回 True,否则便是 False。
5.4、eval(),对表达式求值,内建函数 eval()接收引号内的字符串并把它作为 python 表达式进行求值。
5.5、input()和raw_input(),raw_input()总是以字符串的形式,逐字地返回用户的输入。input()履行相同的的任务;而且,它还把输入作为 python 表达式进行求值。这意味着input()返回的数据是对输入表达式求值的结果:一个 python 对象。
网友评论