[Python] 9. class_extends (클래스 상속)
#정리
#25class_extends - 클래스 상속
#상속할 때는 클래스(상속 클래스1,상속 클래스2,,,) 형태로 한다.
- class Student(Person):
#상속 후 부모 클래스의 [클래스 변수]와 [함수] 상속
- print(st.userName) #클래스변수 상속 OK
- print(st.pname) #함수 안인스턴스 변수 상속 안됨. self ==has no attribute
- st.sleep(7)#상속 후 부모 클래스 함수 사용 가능
#상속 관계 확인
- print(Person.__bases__)#Person의 슈퍼클래스 확인
- print(Student.__bases__)#Person의 슈퍼클래스 확인
#명령어가 is로 시작하면 참,거짓으로 반한된다.
- print(issubclass(Person,object))
- print(issubclass(Student,Person))#Student가 Person의 상속 클래스니?#26class_multi_extends - 클래스 다중 상속
#다중상속을 할 때는 클래스(상속 클래스1,상속 클래스2,,,) 형태로 한다.
- class Student(Person,Korean):
#25class_extends - 클래스 상속
#상속할 때는 클래스(상속 클래스1,상속 클래스2,,,) 형태로 한다.
- class Student(Person):
#상속 후 부모 클래스의 [클래스 변수]와 [함수] 상속
- print(st.userName) #클래스변수 상속 OK
- print(st.pname) #함수 안인스턴스 변수 상속 안됨. self ==has no attribute
- st.sleep(7)#상속 후 부모 클래스 함수 사용 가능
#상속 관계 확인
- print(Person.__bases__)#Person의 슈퍼클래스 확인
- print(Student.__bases__)#Person의 슈퍼클래스 확인
#명령어가 is로 시작하면 참,거짓으로 반한된다.
- print(issubclass(Person,object))
- print(issubclass(Student,Person))#Student가 Person의 상속 클래스니?
--예문 코드 보기--
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print("----Person------")
#클래스 상속
class Person:
userName = "lee"
def __init__(self):
print("Person __init__")
self.pname = "kim"
def sleep(self,time):
print("sleep()...",time)
p = Person()
print(p.pname)
p.sleep(5)
print("----Student------")
#상속할 때는 클래스(상속 클래스1,상속 클래스2,,,) 형태로 한다.
class Student(Person):
def __init__(self):
print("Student __init__")
st = Student()
#상속 후 부모 클래스의 기본 변수 상속
print(vars(st))
print(st.userName) #클래스변수 상속 OK
#print(st.pname) #함수 안 인스턴스 변수 상속 안됨. self ==has no attribute
st.sleep(7)#상속 후 부모 클래스 함수 사용 가능
print("---------------")
#상속 관계 확인
print(Person.__bases__)#Person의 슈퍼클래스 확인
print(Student.__bases__)#Person의 슈퍼클래스 확인
#명령어가 is로 시작하면 참,거짓으로 반한된다.
print(issubclass(Person,object))
print(issubclass(Student,Person))#Student가 Person의 상속 클래스니?
#26class_multi_extends - 클래스 다중 상속
#다중상속을 할 때는 클래스(상속 클래스1,상속 클래스2,,,) 형태로 한다.
- class Student(Person,Korean):
#person / korean 상속
class Student(Person,Korean):
def __init__(self):
print("Student __init__")
st = Student()
print(st.userName) #person class 상속
print(st.ssn) #Korean class 상속
--예문 코드 보기--
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print("---------------")
#다중 상속.
class Korean:
ssn = "880708-1912345"
def __init__(self):
print("Korean__init__")
def getLocation(self):
print("Korean getLocation()...")
return "GyngGiDo"
class Person:
userName = "lee"
def __init__(self):
print("Person __init__")
self.pname = "kim"
def sleep(self,time):
print("sleep()...",time)
p = Person()
print(p.pname)
p.sleep(5)
print("---------------")
#상속할 때는 클래스(상속 클래스1,상속 클래스2,,,) 형태로 한다.
class Student(Person,Korean):
def __init__(self):
print("Student __init__")
st = Student()
print(vars(st))
print(st.userName)
print(st.ssn)
print(st.getLocation())
st.sleep(7)
print("---------------")