study

(210618) 파이썬 수업

hjkeeeem 2024. 7. 25. 20:18

__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는 인스턴스 내에서 변수가 없으면 - 클래스 - 수퍼 순으로 다 검사하기 떄문에 

오류는 나지 않지만 정석대로라면 클래스명을 앞에 찍어주는 것이 맞다.

 

모듈은 파일이고 패키지는 폴더다 !..