Python中的类和实例属性
类属性
类属性属于类本身,它们将被所有实例共享。为了便于阅读,此类属性通常在类主体部分中定义。
# Write Python code here
class sampleclass:
count = 0 # class attribute
def increase(self):
sampleclass.count += 1
# Calling increase() on an object
s1 = sampleclass()
s1.increase()
print(s1.count)
# Calling increase on one more
# object
s2 = sampleclass()
s2.increase()
print(s2.count)
print(sampleclass.count)
输出:
1
2
2
实例属性
与类属性不同,实例属性不被对象共享。每个对象都有自己的实例属性副本(在类属性的情况下,所有对象都引用单个副本)。
要列出实例/对象的属性,我们有两个函数:-
1. vars() - 该函数以字典的形式显示实例的属性。
2. dir() - 这个函数比 vars函数显示更多的属性,因为它不限于实例。它也显示类属性。它还显示其祖先类的属性。
# Python program to demonstrate
# instance attributes.
class emp:
def __init__(self):
self.name = 'xyz'
self.salary = 4000
def show(self):
print(self.name)
print(self.salary)
e1 = emp()
print("Dictionary form :", vars(e1))
print(dir(e1))
输出 :
Dictionary form :{'salary': 4000, 'name': 'xyz'}
['__doc__', '__init__', '__module__', 'name', 'salary', 'show']