📅  最后修改于: 2020-04-07 09:33:39             🧑  作者: Mango
类或静态变量由所有对象共享。不同对象的实例变量或非静态变量不同(每个对象都有一个副本)。
例如,以类CSStudent表示计算机科学学生。该类可能具有一个静态变量,其所有对象的值均为“ cse”。并且类也可能具有诸如name和roll之类的非静态成员。
在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