📜  Python中的类和实例属性

📅  最后修改于: 2022-05-13 01:54:37.734000             🧑  作者: Mango

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']