python:函数内的 self.variable

python:函数内的 self.variable

我正在处理侧重于类及其函数的教程 Python 代码。我想知道self.类内定义的变量的方法。

我是否应该self.仅使用函数的变量__init__(在我的示例中为 0 函数)以及使用之前定义的变量的其他函数(作为同一类中另一个函数的结果)?在我的示例中,第二个函数引入kyz变量来计算新的全局变量 ( c),该变量将由下一个函数使用。那些ky、 和是否应该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()

答案1

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 的一部分,仅用于执行函数指令。

相关内容