Python中的全局变量 vs. 类变量:有何不同
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(),输出了类变量、全局变量和实例变量的值。
总的来说,全局变量和类变量都是在程序执行期间始终存在的变量,但它们的作用域、生命周期和使用方法不同。全局变量适用于在整个程序中都需要访问的变量,而类变量适用于在类的所有实例对象中都需要访问的变量。
相关文章