В Script1 я определил class1.
Чтобы инициировать class1, вам нужна только одна переменная x, но у нее есть другой атрибут y
, который не требуется для инициации класса. Когда я запускаю сценарий 1, он присваивает значение 10 переменной y, которая объявляется после строки if __name__ == __main__:
.
######Script1#########
Class class1:
def __init__(self,x):
self.x = x
self.y = y
if __name__ == '__main__':
y = 10
class_instance = class1(100)
print(class_instance.y) #prints 10 or assigns 10 to class.y
В сценарии 2 я импортирую class1 и пытаюсь присвоить значение y
, но это дает мне NameError
. Я попытался объявить y как global в class1 и еще кое-что, но это не работает. Я понимаю, что это как-то связано с пространством имен и областью видимости - любой указатель в правильном направлении будет большим подспорьем. Спасибо.
#### script2 ######
from script1 import *
if __name__ == '__main__':
y = 10
class_instance = class1(200)
print(class_instance.y) #gives NameError
NameError: name 'y' is not defined