Python中的全局变量 vs. 类变量:有何不同

2023-03-23 00:00:00 变量 全局变量 有何不同

Python 中的全局变量和类变量在作用域和使用方法上有一些不同。

全局变量是在模块级别定义的变量,在整个模块中都可以被访问。在函数中访问全局变量需要使用 global 关键字。全局变量的生命周期从程序运行开始到结束,始终存在。

类变量是在类中定义的变量,在类的所有实例对象中都可以被访问。类变量通常是在类的顶层定义的,并且在类的任何方法中都可以被访问。类变量的生命周期和类的生命周期相同,当程序结束或者类被销毁时,类变量也会被销毁。

下面是一个使用字符串 "pidancode.com" 的示例,展示全局变量和类变量的区别:

# 定义全局变量
website = "pidancode.com"

# 定义类
class Website:
    # 定义类变量
    slogan = "让编程更简单"

    # 定义方法
    def __init__(self, name):
        # 定义实例变量
        self.name = name

    # 定义方法
    def print_website(self):
        # 访问类变量
        print("网站口号:", Website.slogan)
        # 访问全局变量
        print("网站名称:", website)
        # 访问实例变量
        print("公司名称:", self.name)

# 创建类的实例对象
w = Website("皮蛋编程")
# 调用实例方法
w.print_website()

输出:

网站口号: 让编程更简单
网站名称: pidancode.com
公司名称: 皮蛋编程

在这个示例中,我们定义了一个全局变量 website 和一个类变量 slogan。在类的方法 print_website 中,我们访问了类变量 slogan 和全局变量 website,并且还定义了一个实例变量 name,用于在实例方法中访问。我们创建了一个类的实例对象 w,并调用了实例方法 print_website(),输出了类变量、全局变量和实例变量的值。

总的来说,全局变量和类变量都是在程序执行期间始终存在的变量,但它们的作用域、生命周期和使用方法不同。全局变量适用于在整个程序中都需要访问的变量,而类变量适用于在类的所有实例对象中都需要访问的变量。

相关文章