dir(p)与dir(Person)区别
p=Person(...)
dir(p)时显示Person类属性和自己定义的属性如name,gender等
dir(Person)时则不显示自己定义的属性。
为什么?
p=Person(...)
dir(p)时显示Person类属性和自己定义的属性如name,gender等
dir(Person)时则不显示自己定义的属性。
为什么?
2017-09-17
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
def whoAmI(self):
return 'I am a Person, my name is %s' % self.name
当你实例化对象时会创建两个属性 name和gender,所以dir(p)有这两个属性,Person是没有的,你可以这样
class Person(object):
count = 0 ############################################
def __init__(self, name, gender):
self.name = name
self.gender = gender
def whoAmI(self):
return 'I am a Person, my name is %s' % self.name
这个时候dir(Person)就有count了,也就是python是动态语言,变量是临时创建的,你赋值的时候才会有
Person是类对象,p是实例对象,我说的可能有点多了
举报