‘‘‘一,面向对象的进阶
成员
(字段 静态字段(每个对象都有一份用 (区别:没self)),普通字段(每个对象都不同的数据用(区别:有self))
方法 静态方法(无需使用对象封装的内用用 (区别:没self)),类方法,普通方法(使用对象中的数据用(区别:有self)),
特性 普通特性(将方法伪造成字段的方法去执行,前提是要创建一个值去接收它。)
)
通过类访问:静态字段,静态方法(staticmethod),类方法(classmethod)
通过对象访问:普通字段,类的方法。
————快速判断,类执行,对象执行 调用(有self用对象调用。无self用类调用)
成员修饰符
面向对象中一些常用特殊方法 __init__ __call__ __delitem__
二,异常处理
三,单列模式‘‘‘
‘‘‘
导入模块
m = __import__(‘python‘,fromlist = True)
去模块中寻找类
class_name = getattr(m,‘Foo‘)
根据类创建对象
obj = class_name(‘Alex‘)
去对象中寻找name对应的值
val = getattr(obj,‘name‘)
‘‘‘
class Foo:
#静态字段
country = ‘china‘
def __init__(self,name):
#普通字段
self.name = name
#普通方法
def show(self):
print(‘111‘)
@classmethod
def xxoo(cls):
print(‘class‘)
#静态方法
@staticmethod
def xx():
print(‘22‘)
#特性,将方法伪造成一种字段的形式
@property
def end(self):
temp = ‘%s pp‘%self.name
return temp
@end.setter
def end(self,velue):
print(velue)
#类访问静态字段
print(Foo.country)
#类访问静态方法
Foo.xx()
#类访问类方法
Foo.xxoo()
#特性伪造成字段的形式去访问,不用加括号。
obj = Foo(‘奥巴马‘)
print(obj.end)
#字段可以重新复制
Foo.country = ‘中国‘
print(Foo.country)
‘‘‘字段既然可以重新赋值,那么伪造静态的形式,是否也可以进行重新赋值呢。当然OK了。前提是要创建一个值去接收它。 ‘‘‘
Foo.end = ‘123‘
print(Foo.end)
原文:http://www.cnblogs.com/cloniu/p/6240760.html