Вы либо хотите это, с пациентом, которое является глобальным именем
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
, скрывая общий Patient.somename
).Я предполагаю, что вам нужно имя, связанное с каждым экземпляром, а не имя общего класса, поэтому я назначаю его с помощью self
.