所以我不是来自计算机科学背景,而且我很难搜索/搜索正确的术语来回答这个问题。如果我有一个Python类与类变量objects
像这样:Python类是否可以访问成员,但不能从类的实例中访问?
class MyClass(object):
objects = None
pass
MyClass.objects = 'test'
print MyClass.objects # outputs 'test'
a = MyClass()
print a.objects # also outputs 'test'
类和类的实例都将有机会获得objects
变量。我明白,我可以改变的实例值,如下所示:
a.objects = 'bar'
print a.objects # outputs 'bar'
print MyClass.objects # outputs 'test'
,但有可能有Python中的类变量,访问类的用户(即不只是从类中),但不该类别的实例可以访问?我认为这被称为私人会员或其他语言的静态会员?
也许我要澄清,我想我的'MyClass'的用户使用'objects',但我不想MyClass'的'实例使用对象。由jonrsharpe提供的链接谈论了很多关于如何使私人事物,这是不是我想要解决这个问题。我更感兴趣的是,如果可能只有类中存在类变量,而不是实例中。 – Randy
为什么你需要在你的课堂里添加这样的变量?将它添加到模块的根目录并不简单?例如'在您的类定义之外添加'MY_VARIABLE ='test'' – furins
将它添加到模块根目录可能会更简单,但我处于这种情况下需要对调用代码进行很多其他更改,这就是为什么我想保留它在课堂上。 – Randy