赞
踩
建立一个简单的类:
- __metaclass__ = type #确定使用新式类
- class Person:
- def setName(self, name):
- self.name = name
- def getName(self):
- return self.name
- def greet(self):
- print "Hello, world! I'm %s." % self.name
- p = Person()
- p.setName('Luke Skywalker')
- print p.getName()
- p.greet()
self(对象自身)的用处和存在的必要性。没有它的话,成员方法就没有访问他们要对其特性进行操作的对象本身。
为了让方法或特性变为私有(从外部无法访问),只要在它的名字前面加上双下划线即可:
- class Securetive:
- def __inaccessible(self):
- print "Bet you can't see me..."
- def accessible(self):
- print "The secret message is:"
- self.__inaccessible()
- s = Securetive()
- # s.__inaccessible()
- s.accessible()
子类可以扩展超类的定义,将其他类名写在class语句后的圆括号内可以指定超类:
- 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']
- f = Filter()
- f.init()
- print f.filter([1, 2, 3])
- s = SPAMFilter()
- s.init()
- print s.filter(['SPAM', 'SPAM', 'SPAM', 'SPAM', 'eggs', 'bacon', 'SPAM'])
如果想要查看一个类是否是另一个类的子类,可以内建issubclass函数:
使用isinstance方法检查一个对象是否是一个类的实例
简单就好
当考虑需要什么类以及类要有什么方法时,应该尝试下面的方法:
- 函数 & 描述 \\
- callable(object) & 确定对象是否可调用 \\
- getattr(object, name[, default]) & 确定特性的值,可选择提供默认值 \\
- hasattr(object, name) & 确定对象是否有给定的特性 \\
- isinstance(object, class) & 确定对象是否是类的实例 \\
- issubclass(A, B) & 确定A是否是B的子类 \\
- random.choice(sequence) & 从非空序列中随机选择元素 \\
- setattr(object, name, value) & 设定对象的给定特性为value \\
- type(object) & 返回对象的类型 \\
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。