-
python-04 class코딩/python 2023. 5. 2. 18:36
1. class
인스턴스를 만들어내기 위한 틀
class Person: Name = 'Default Name' def Print(self): print('My Name is {0}'.format(self.Name)) p1 = Person() p1.Print() My Name is Default Name
p1 = Person() p2 = Person() p1.Name = 'rla' p2.Name = 'als' p1.Print() p2.Print() My Name is rla My Name is als
Person.Title = 'New Title' #메소드 추가 print(p1.Title) New Title
2. 생성자, 소멸자 메소드
생성자와 소멸자는 인스턴스가 생성될 때 한번 실행된다.
class Person: Name = '' Age = 0 def __init__(self, name, age): self.Name = name self.Age = age def __del__(self): print('{0} 잘살다 갑니다.'.format(self.Name)) def PrintName(self): print(self.Name) print(self.Age)
3. 상속
class Person: def __init__(self, name, phone): self.Name = name self.Phone = phone def PrintInfo(self): print('Info(Name:{0}, Phone{1}'.format(self.Name, self.Phone)) def PrintPersonData(self): print('Person(Name:{0}, Phone{1}'.format(self.Name, self.Phone))
class Student(Person): def __init__(self, name, phone, subject, studentID): self.Name = name self.Phone = phone self.Subject = subject self.StudentID = studentID
p = Person('aaa','010-010-010') s = Student('bb', '010-010', 'sub','0000') print(p.__dict__) print(s.__dict__) {'Name': 'aaa', 'Phone': '010-010-010'} {'Name': 'bb', 'Phone': '010-010', 'Subject': 'sub', 'StudentID': '0000'}
Student 클래스는 Person의 속성을 상속받았기 때문에 Person의 인자들을 출력할 수 있다.
4. 다중 상속
class Tiger: def Jump(self): print('호랑이 점프') class Lion: def Bite(self): print('사자의 물기') class Liger(Tiger, Lion): def Play(self): print('라이거의 놀기')
l = Liger() l.Jump() l.Bite() l.Play() 호랑이 점프 사자의 물기 라이거의 놀기
Liger 클래스는 Tiger의 Jump와 Lion의 Bite 메소드를 사용할 수 있다.
'코딩 > python' 카테고리의 다른 글
python-06 numpy (0) 2023.05.04 python-05 예외처리 (0) 2023.05.02 python-03 식 (0) 2023.05.01 python-02 함수 (0) 2023.05.01