【发布时间】:2016-10-03 11:32:12
【问题描述】:
我试图在类中声明一个静态变量。我正在尝试在函数中添加代码的返回值。
返回值分配给类内部的静态变量,但是当我尝试创建该类的对象并从另一个类访问静态变量值时,它仍然返回旧值。
class Login(Base):
token = ''
def run(self):
token=keystone.get_raw_token_from_identity_service('http://localhost:35357/v3,
username=username, user_domain_name='default, password=passwrd, project_name=project, project_domain_name='default')
def auth_token(self,token):
self.token = token
return self.token
在另一个类中,我试图调用静态变量,但它总是打印在第一个类中声明的初始值,即 token = ''
credentials = Login(Base)
print(type(credentials.auth_token.__func__))
print(hasattr(credentials,'token'))
print(credentials.token)"""
【问题讨论】:
-
如果您真的希望
token在Login的所有实例中都相同,则将其称为Login.token而不是self.token。但是,您确定这是您想要的行为吗? -
@Jean-FrançoisFabre 这不是问题
-
@jonrsharpe:我不知道,我讨厌非常量静态成员
-
@Jean-FrançoisFabre 好欺负你;那么,也许不要对他们施加压力。
-
@jonrsharpe:我的意思是:可变静态数据成员很少是解决方案。
标签: python python-2.7