__init__은 생성자라고 생각하면 됨.
파이썬에서는 클래스에서 사용하는 함수의 첫번째 인자(parameter)를
self로 사용하는 것이 원칙
class Person:
def __init__(self, fname, lname):
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
# 파이썬의 모든 메서드는 첫번째 인자가 self입니다.
x1 = Person("John", "Doe") # Person.__init__(x1, "John", "Doe")
x1.printname() # Person.printname(x1)
x2 = Person("순신", "이") # Person.__init__(x2, "순신", "이")
x2.printname() # Person.printname(x2)
year을 추가했을 때, 상위 Person 클래스를 사용하기 위하여 상속받음
class Person:
def __init__(self, fname, lname):
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
# 파이썬의 모든 메서드는 첫번째 인자가 self입니다.
x1 = Person("John", "Doe") # Person.__init__(x1, "John", "Doe")
x1.printname() # Person.printname(x1)
x2 = Person("순신", "이") # Person.__init__(x2, "순신", "이")
x2.printname() # Person.printname(x2)
class Person:
def __init__(self, fname, lname):
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
class Student(Person):
def __init__(self, fname, lname, year):
super().__init__(fname, lname)
self.graduationyear = year
def welcome(self):
print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)
x = Student("Mike", "Olsen", 2019) # Student.__init__(x, "Mike", "Olsen", 2019)
x.welcome() # Student.welcome(x)
*id 함수 ( 메모리 주소값을 가짐)
클래스 메소드와 스태틱 메소드
클래스 변수를 인스턴스 변수로 사용하려면 앞에 클래스 명을 붙여주면 사용 가능하다.
인스턴스 네임스페이스 내에서 없으면 오류가 나야하는데 self를 쓰면 오류가 안 나는 이유는
self는 인스턴스 내에서 변수가 없으면 - 클래스 - 수퍼 순으로 다 검사하기 떄문에
오류는 나지 않지만 정석대로라면 클래스명을 앞에 찍어주는 것이 맞다.
모듈은 파일이고 패키지는 폴더다 !..
'study' 카테고리의 다른 글
(210710) 파이썬 튜플, 딕셔너리 정리 (0) | 2024.07.25 |
---|---|
(210707) 독립변수, 종속변수 (0) | 2024.07.25 |
(210616) Python 수업 첫날 (0) | 2024.07.25 |
(210527)미니 팀프로젝트 MYSQL과 ECLIPES 연결하기 (0) | 2024.07.25 |
(210505)컴퓨터와 가위,바위,보 게임 프로그램 (0) | 2024.07.25 |