Python 中的静态类变量

Lakshay Kapoor 2023年1月30日 2021年7月13日
  1. 在 Python 中使用 staticmethod() 定义静态变量
  2. 在 Python 中使用 @staticmethod 定义静态变量
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 avatar Lakshay Kapoor avatar

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

相关文章 - Python Class