python: 함수 내 self.variable [닫기]

python: 함수 내 self.variable [닫기]

저는 클래스와 그 기능에 초점을 맞춘 튜토리얼 Python 코드를 작성 중입니다. self.클래스 내에 정의된 변수의 메소드를 알고 싶습니다 .

self.함수의 변수 __init__(예제 함수에서는 0)와 이전에 정의된 변수(동일 클래스의 다른 함수의 결과)를 사용하는 다른 함수 만 사용해야 합니까 ? 내 예에서 두 번째 함수는 다음 함수에서 사용할 새 전역 변수( )를 계산하기 위해 및 변수를 k도입 y합니다 . , , 및 을 로 정의 해야 합니다 . 가변적인가요? 둘 사이의 차이점은 무엇입니까?zckyz__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의 일부이며 기능 명령어를 실행하는 데에만 사용됩니다.

관련 정보