Python 中的静态类变量
Python 中的静态变量是在定义的类中声明但不在方法中声明的变量。该变量可以通过定义它的类调用,但不能直接调用。静态变量也称为类变量。这些变量仅限于类,因此它们不能更改对象的状态。
本教程将演示在 Python 中定义静态变量的不同方法。
在 Python 中使用 staticmethod()
定义静态变量
Python 中的 staticmethod()
是一个内置函数,用于返回给定函数的静态变量。
这种方法现在被认为是在 Python 中定义静态变量的旧方法。
例子:
class StaticVar:
def random(text):
print(text)
print("This class will print random text.")
StaticVar.random = staticmethod(StaticVar.random)
StaticVar.random("This is a random class.")
输出:
This is a random class.
This class will print random text.
在这里,首先,我们创建一个名为 StaticVar
的类。在程序中,我们使用 staticmethod()
函数在类外声明一个名为 random
的变量作为静态变量。通过这个,我们可以直接使用 StaticVar
类调用 random()
。
在 Python 中使用 @staticmethod
定义静态变量
@staticmethod
是一种现代且最常用的定义静态变量的方法。@staticmethod
是 Python 中的内置装饰器。装饰器是 Python 中的一种设计模式,用于在不改变其初始结构的情况下为已经存在的对象添加新功能。因此,@staticmethod
装饰器用于在 Python 的类中定义静态变量。
例子:
class StaticVar:
@staticmethod
def random(text):
# show custom message
print(text)
print("This class will print random text.")
StaticVar.random("This is a random class.")
输出:
This is a random class.
This class will print random text.
请注意,@staticmethod
装饰器是在定义静态变量 random
之前定义的。因此,我们可以轻松地通过 StaticVar
类在末尾调用 random
变量。
另外,请注意,在这两种方法中,我们都没有使用 self
参数,该参数用于在定义 random
变量时访问函数属性和方法。这是因为静态变量永远不会通过对象进行操作。
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn