Если я объявлю переменную в __init__ без self, что с ней произойдет. Я знаю, что это не переменная класса или переменная экземпляра. каким точным термином это описать? Как я могу получить к нему доступ? Какое влияние это может иметь при создании объекта MyClass1.
class MyClass1:
myname = "Class variable"
def __init__(self):
myname = "Instance variable???" #Deliberately declared without self
a = MyClass1()
print(a.myname)
Это просто локальная переменная, как и в любом другом методе или функции. Здесь ничего особенного не происходит.






Переменная myname является локальной для метода __init__. Ничего не произойдет с атрибутом mynameMyClass1. Если вы хотите изменить его значение, вам следует использовать self.
class MyClass1:
myname = "Class variable"
def __init__(self):
self.myname = "my attribute"
a = MyClass1()
print(a.myname)
Это локальная переменная, локальная для метода
__init__(). Вы не можете получить к нему доступ вне этого метода, и его значение сбрасывается, как только вы покидаете__init__().