以下哪種情況是在python中聲明實例變量的最佳實踐方式。是否有典型的偏好,這有什麼理由?在哪裏聲明對象變量
選項1 - __init__
class MyObject:
def __init__(self, arg):
self.variable_1 = self.method_1(arg)
def method_1(self, arg):
return(arg)
方案2中聲明 - 聲明在其他方法
class MyObject:
def __init__(self, arg):
self.method_1(arg)
def method_1(self, arg):
self.variable_1 = arg
這純粹是爲了瞭解是否有這樣做的最佳實踐方法其他開發人員更願意在查看和擴展代碼時看到。
選項1.你應該在'__init__'中聲明所有的屬性,因爲它在哪裏有人會尋找它們。 –
OOP中的一般規則(不考慮編程語言)是構造函數就像__init__中的賦值操作符意味着我們應該分配實例變量的值。所以我認爲我們應該在__init__中賦值,getter和setter應該與它分開。 –
我爲迂腐而道歉,但實例變量沒有在Python中聲明。當它們首次被分配時,它們[彈出](https://docs.python.org/3.3/tutorial/classes.html#instance-objects)。變量聲明存在於C++和Java等語言中,而不是Python中。 –