我想检查全局变量是否返回null。在单击事件中调用def C(),这意味着不会明确分配patientName。但是,我不知道如何解决它。
我的代码如下:
class Example():
patientName = 0
def A():
global patientName
patientName = "12"
def B():
print (patientName) #prints 12
def C():
#I want to check if patientName = null here
#how to do it?
#Assume C is triggered by the click event.
if patientName!="123" --> throws global variable patientName
referenced before assignment....
谢谢!
答案 0 :(得分:0)
class Example():
patientName = None
def A(self):
self.patientName = "12"
def B(self):
print (self.patientName) #prints 12
def C(self):
#I want to check if patientName = null here
#how to do it?
#Assume C is triggered by the click event.
if(self.patientName==None):
print("do something")
以下是运行支票的示例
ex=Example()
ex.A()
ex.C()
答案 1 :(得分:0)
你想要这个,patientName是一个全局名称
patientName = 0
class Example():
def A():
global patientName
patientName = "12"
def B():
print (patientName) #prints 12
def C():
if patientName!="123"
或更多可能你想要这样的东西
class Patient():
def __init__(self, name):
self.name = name
def C(self):
if self.name!="Sally":
# do something
patient1 = Patient("Mary")
print(patient1.name) # Mary
patient1.C()
全局名称将位于外部作用域中,并且只要您想在内部作用域中写入其值,就必须事先在该作用域中声明它的全局。对于正常范围规则的读取,不需要全局语句。但是,您可能希望创建Patient
的不同实例。这是第二个建议。在类中定义名称
但在任何方法之外使其成为类名,这是所有实例共享的名称(除非实例将somename
指定为隐藏共享self.somename
的{{1}}。我假设您希望与每个实例关联的名称而不是共享的类名,这就是我使用Patient.somename
分配它的原因。
答案 2 :(得分:-1)
我相信你可以试试
ImportError