今天在网上看到type的一段代码 ,然后查了一下文档,才知道type还有三个参数的用法。
http://docs.python.org/2/library/functions.html#type
以前只是知道type可以检测对象类型。然后发现了一个有趣的用法。
代码如下:
def println(self):
a = 1 + 1
print “%s,%s” % (self.aa, a)
a = type(‘a’,(),{‘aa’:’print a’, ‘println’: println})
a = a()
type(a)
out[11]: __main__.a
a.println()
print a,2
第一个参数是类的名字,第二个元组是父类,第三个是属性。
哈哈,我觉得很好笑,虽然我函数里边第一个参数还是写的self,但是如果写一段代码都用这种方法定义类,然后再不注意类名的规范,代码会变的很难读。