저는 클래스와 그 기능에 초점을 맞춘 튜토리얼 Python 코드를 작성 중입니다. self.
클래스 내에 정의된 변수의 메소드를 알고 싶습니다 .
self.
함수의 변수 __init__
(예제 함수에서는 0)와 이전에 정의된 변수(동일 클래스의 다른 함수의 결과)를 사용하는 다른 함수 만 사용해야 합니까 ? 내 예에서 두 번째 함수는 다음 함수에서 사용할 새 전역 변수( )를 계산하기 위해 및 변수를 k
도입 y
합니다 . , , 및 을 로 정의 해야 합니다 . 가변적인가요? 둘 사이의 차이점은 무엇입니까?z
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()
답변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의 일부이며 기능 명령어를 실행하는 데에만 사용됩니다.