Python
python:函式內的self.variable
我正在處理側重於類及其功能的教程 Python 程式碼。我想知道
self.
類中定義的變數的方法。我是否應該
self.
僅用於__init__
函式變數(在我的範例中為 0 函式)以及使用之前定義的變數的其他函式(作為同一類中另一個函式的結果)?在我的範例中,第二個函式引入k
、y
和z
variables 來計算新的全域變數 (c
),下一個函式將使用該變數。應將那些k
、y
和z
定義為__init__
。變數與否?兩者之間應該有什麼區別?# define the class class Garage: # 0 - define the properties of the object # all variables are .self since they are called first time def __init__(self, name, value=0, kind='car', color=''): self.name = name self.kind = kind self.color = color self.value = value # 1- print the properties of the object # we are calling the variables defined in the previous function # so all variables are self. def assembly(self): desc_str = "%s is a %s %s worth $%.2f." % (self.name, self.color, self.kind, self.value) return desc_str # 2 - calculate coeff of its cost # ???? def get_coeff(self,k=1,y=1,z=1): #self.k =k #self.y =y #self.z =z global c c=k+y+z return c # 3 use the coeff to calculate the final cost # self.value since it was defined in __init__ # c - since it is global value seen in the module def get_cost(self): return [self.value * c, self.value * c, self.value * c] car1= Garage('fiat',100) car1.assembly()
Self 是類實例的表示,所以如果我們想訪問一個對象的屬性,建構子將使用 self 來訪問實例參數。
car1= Garage('fiat',100) ## car1.name = self.name == fiat ## car1.value= self.value == 100
同時
def get_coeff(self,k=1,y=1,z=1)
是一個函式,其中 k,y,z 是參數(預設值為 1),這些參數僅在本地可用,並且可以作為該函式內部的變數進行操作/覆蓋,並將它們放在建構子中並不意味著什麼,因為它們不是 CLASS 的一部分,僅用於執行函式指令。