我对下面Python静态变量的代码片段感到困惑。当我执行时,我将访问实例变量。但是如果我注释掉第3行,那么就会访问静态变量。我想知道为什么实例方法是这样的。
class Test:
static_variable = "this is static variable"
def __init__(self):
self.static_variable= "this is some instance variable" # 3
def some_method(self):
print(self.static_variable)
t = Test()
t.some_method()
问题来源StackOverflow 地址:/questions/59467044/python-instance-method-scope
实例变量属于类的某个特定实例,静态变量属于类,因为它们的作用域在整个类中都是可用的,所以也被称为全局变量。在类中定义实例变量或静态变量时,可以放在任何位置。但为了美观规范,设计类时最好统一放在类中的最前面。
public class Testvariable {
int a; //实例变量
static int b; //静态变量
//不能声明后,单独赋值
a = 5; //error
b = 5; //error
}
因为不符合语法规则, 赋值语句这个操作要放在语句块中才能执行。但可以声明变量后直接赋值进行初始化:
int a = 5; //实例变量
static int b = 5; //静态变量
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。