Python 中的静态

17 Mar 2025 | 5 分钟阅读

静态变量和静态方法是广泛使用的编程概念,在 C++、PHP、Java 等各种语言中都有应用。这些变量和方法属于类和对象。在本节中,我们将学习如何在 Python 中创建静态变量方法

Python 静态变量

当我们在类中声明一个变量,但在方法之外,它被称为静态或类变量。它可以直接从类中访问,但不能通过类的实例访问。然而,静态变量与其他成员完全不同,它不会与 Python 程序中同名变量发生冲突。

让我们考虑一个程序来演示 Python 中静态变量的使用。

Static.py

输出

Information technology
Information technology
John
Marcus
E101
E105
Information technology
Networking
Information technology
Networking
Database Administration

在上面的示例中,dept 是在类方法之外、类定义之内部定义的类变量。而 nameid 是在方法内部定义的实例变量。

使用同一个类对象访问静态变量

我们可以使用同一个类对象通过点运算符直接访问 Python 中的静态变量。

让我们考虑一个程序,使用同一个类对象在 Python 中访问静态变量。

staticVar.py

输出

Lucky No. 7
This is a good Car

静态方法

Python 有一个静态方法,它属于类。它就像一个静态变量,绑定到类而不是类的对象。静态方法可以在不创建类对象的情况下调用。这意味着我们可以直接使用类名引用来调用静态方法。此外,静态方法受限于类,因此它不能改变对象的状态。

静态方法的特性

以下是静态方法的特性:

  1. Python 中的静态方法与类相关。
  2. 可以通过类名引用直接从类调用它。
  3. 它不能访问 Python 程序中的类属性。
  4. 它只绑定到类。因此,它不能修改对象的状态。
  5. 它也用于划分类的实用方法。
  6. 它只能在类内部定义,不能定义在类的对象上。
  7. 类的所有对象共享静态方法的唯一副本。

在 Python 中定义静态方法有两种方式:

  1. 使用 staticmethod() 方法
  2. 使用 @staticmethod 装饰器

使用 staticmethod() 方法

staticmethod() 是 Python 中的一个内置函数,用于将给定的函数作为静态方法返回。

语法

staticmethod() 接受一个参数。传入的参数是要转换为静态方法的函数。

让我们考虑一个程序,使用 Python 中的 staticmethod() 将函数创建为静态方法。

staticMethod.py

输出

Total Marks in Maths 92
 Total Marks in Science 95
 Total Marks in English 95

在上面的程序中,我们在类外部使用 **staticmethod()** 函数将 Math_num、Sci_num 和 Eng_num 方法声明为静态方法。之后,我们可以直接使用类名 **Marks** 调用静态方法。

使用 @staticmethod 装饰器

@staticmethod 是一个内置装饰器,用于在类中定义静态方法。它不接收任何作为类实例或调用静态方法的类的引用的参数。

语法

注意:@staticmethod 是定义静态方法的一种现代方法,大多数程序员在 Python 编程中使用此方法。

让我们创建一个程序,在 Python 中使用 @staticmethod 装饰器定义静态方法。

staticFun.py

输出

Total Marks in Maths 92
 Total Marks in Science 95
 Total Marks in English 95

使用同一个类对象访问静态方法

考虑一个程序,使用 Python 中的 @staticmethod 在类中使用同一个类对象访问静态方法。

Test.py

输出

Welcome to the World!!

函数使用静态方法返回值

让我们编写一个程序,在 Python 中使用 @staticmethod 返回值。

Static_method.py

输出

The person is not eligible to vote.