《python基础教程(第二版)》学习笔记 类和对象(第7章)
定义类
class Person:
def setName(self,name):
self.name=name
def getName(self):
return self.name
foo=Person()
foo.setName('AAA')
foo.getName()
foo.name
foo.name='BBB'
私有属性,名字前面加上两个下划线。
class Person:
def __setName(self,name):
self.name=name
def __getName(self):
return self.name
class Person:
members=0 #供全部实例访问
def init(self):
Person.members+=1 #供全部实例访问
def setName(self,name):
self.name=name
def getName(self):
return self.name
__metaclass__=type
class Filter:
def init(self):
self.blocked=[]
def filter(self, sequence):
return [x for x in sequence if x not in self.blocked]
class SPAMFilter(Filter): #子类扩展了超类
def init(self):
self.blocked=['SPAM'] #重写了init方法
issubclass(SPAMFilter, Filter) ==> True
SPAMFilter.__bases__ ==> (<class __main__.Filter at 0x0000000002E511C8>,)
isinstance(foo, SPAMFilter) ==> False
hasattr(foo, 'name') ==> True
查看对象内所有存储的值,用 __dict__属性。
foo.__dict__ ==> {'name': 'AAA'}