📜  Python中的类或静态变量

📅  最后修改于: 2020-04-07 09:33:39             🧑  作者: Mango

类或静态变量由所有对象共享。不同对象的实例变量或非静态变量不同(每个对象都有一个副本)。
例如,以类CSStudent表示计算机科学学生。该类可能具有一个静态变量,其所有对象的值均为“ cse”。并且类也可能具有诸如nameroll之类的非静态成员。
C++Java中,我们可以使用static关键字将变量作为类变量。没有前面的static关键字的变量是实例变量。见Java的例子
Python的方法很简单,它并不需要一个静态的关键字。在类声明中被赋值的所有变量都是类变量。在类方法中分配值的变量是实例变量。

# Python展示类变量和实例变量
class CSStudent:
    stream = 'cse'                  # 类变量
    def __init__(self,name,roll):
        self.name = name            # 实例变量
        self.roll = roll            # 实例变量
# CSStudent类的对象
a = CSStudent('芒果', 1)
b = CSStudent('Nerd', 2)
print(a.stream)  # 打印 "cse"
print(b.stream)  # 打印 "cse"
print(a.name)    # 打印 "芒果"
print(b.name)    # 打印 "酷酷的"
print(a.roll)    # 打印 "1"
print(b.roll)    # 打印 "2"
# Class variables can be accessed using class
# name also
print(CSStudent.stream) # 打印 "cse"

输出:

cse
cse
芒果
酷酷的
1
2
cse