📅  最后修改于: 2020-04-07 12:02:42             🧑  作者: Mango
类属性
类属性属于类本身,它们将由所有实例共享。为了清晰起见,此类属性通常在顶部的类正文部分中定义。
# Python代码
class sampleclass:
count = 0 # class attribute
def increase(self):
sampleclass.count += 1
# 对象上调用increase()
s1 = sampleclass()
s1.increase()
print s1.count
# 在另一个对象调用increase()
s2 = sampleclass()
s2.increase()
print s2.count
print sampleclass.count
输出:
1
2
2
对象属性
与类属性不同,实例属性不被对象共享。每个对象都有其实例属性的副本(对于类属性,所有对象均引用单个副本)。
要列出实例/对象的属性,我们有两个函数:
1. vars():此函数以字典的形式显示实例的属性。
2. dir():此函数显示的属性比vars函数更多,因为它不仅限于实例,它还显示类属性。
# Python展示对象属性.
class emp:
def __init__(self):
self.name = 'xyz'
self.salary = 4000
def show(self):
print self.name
print self.salary
e1 = emp()
print "字典 :", vars(e1)
print dir(e1)
输出:
字典 :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']