# 클래스 생성#
class charic():
'''레벨을 올려보자'''
def __init__(self, name, level):
'''init을 사용해 초기화 해주자'''
self.name = name
self.level = level
###====여까지 똑같습니다====###
def __str__(self): #문자열화 해주는 함수 선언!
'''문자열화 해주는 함수'''
return "닉네임: {}, 레벨: {}".format(self.name, self.level)
#해당 값으로 return 해주겠습니다!
# 클래스 생성 끝#
create = charic("rednooby", 1) #그대로 값을 집어넣습니다.
print(create) #init에서는 create.name, create.level을 했지만
#__str__에서 이미 문자열화 해주는 함수를 사용하여
#return 했기 때문에 create 그대로 사용해도 실행이 됩니다.
내가 정리한 상속, Super, init
class SuperClass(object):
def __init__(self, x):
print('testSuper')
self.x = x
class SubClass(SuperClass):
def __init__(self, y):
print('testSub')
super(SubClass, self).__init__('xxx')
self.y = y
subclass= SubClass('babo')
print(subclass.x)
print(subclass.y)
+추가
class Parent:
def __init__(self, p1, p2):
'''super()를 사용하지 않으면 overriding 됩니다.'''
self.p1 = p1
self.p2 = p2
class Child(Parent):
def __init__(self, c1, **kwargs):
super(Child, self).__init__(**kwargs)
self.c1 = c1
self.c2 = "This is Child's c2"
self.c3 = "This is Child's c3"
child = Child(p1="This is Parent's p1",
p2="This is Parent's p1",
c1="This is Child's c1")
print(child.p1)
print(child.p2)
print(child.c1)
print(child.c2)
print(child.c3)
위 코드의 실행 결과는 아래와 같습니다.
This is Parent's p1
This is Parent's p1
This is Child's c1
This is Child's c2
This is Child's c3
'__str__'
a.__str__ # == str(a)
'repr'
1. repr로 출력하면, ‘파이썬에서 해당 객체를 만들 수 있는 문자열’로 출력
이를 ‘공식적인’ 문자열이라 한다.
2. str은 소숫점 13자리에서 반올림한다.