items함수를 사용하면 딕셔너리의 값을 반복할때 키와 값을 접근하기가 매우 유용해집니다.
>>> car = {"name" : "BMW", "price" : "7000"}
>>> for key, val in car.items():
... print("key : {} value : {}".format(key,val))
key : name value : BMW
key : price value : 7000
지금까지 봤던 클래스 안에 있던 self에 대해 찾아보니 "인스턴스 자신", "그 시점의 자신", "메소드의 임의의 인수"등 다양하게 부르고 있었다. 그러나 클래스의 구성을 취득할 때에 정형의 구문으로써 기억해두면 괜찮은 것 같다.
__init__의 이해
self와 나란히 클래스 내에 등장하는 __init__에 대해서는 알아보자. __init__에 대해 간단히 정리하자면, 다음과 같다.
컨스트럭터라고 불리는 초기화를 위한 함수(메소드)
인스턴스화를 실시할 때 반드시 처음에 호출되는 특수한 함수
오브젝트 생성(인스턴스를 생성)과 관련하여 데이터의 초기를 실시하는 함수
__init__()은 반드시 첫 번째 인수로 self를 지정해야한다. self에는 인스턴스 자체가 전달되어 있다. 이로 인해, 최과 메소드 내에 인스턴스 변수를 작성하거나, 참고하는 것이 가능해진다. 클래스를 생성할 때에 지정한 인수는 초기화 메소드의 2 번째부터 작성해 나가면 된다.(something)
class SomeClass:
def __init__(self,something):#constructor
self.something = something
클래스 구성에서 정보를 유지하기 위한 중요한 구성으므로 빼놓을 수 없는 것이라고 생각하면 좋을 것 같다. 이 구문에 의해 객체 생성할 때, 정보의 추가 기재를 간단히 할 수 있다.
예를 들어, 여러 개의 정보를 변수로하는 클래스 구문에서의 처리를 실행하고 싶은 경우는 다음과 같이 쓸 수 있다.
class MyStatus:
def __init__(self,age,name,height,weight):
self.age = age
self.name = name
self.height = height
self.weight = weight
def print_name(self):
print(self.name)
def print_age(self):
print(self.age)
def print_height(self):
print(self.height)
def print_weight(self):
print(self.weight)
a = MyStatus(34,"yamada",170,78)