class FourCal:
def setdata(self, first, second):
self.first = first
self.second = second
def add(self):
result = self.first + self.second
return result
# 메서드 호출하기
# 1)
a = FourCal()
a.setdata(4, 2)
# 2)
a = FourCal()
FourCal.setdata(a, 4, 2)
# add 함수 사용
a.add() # 6
객체를 통해 클래스의 메서드를 호출하려면 a.setdata(4, 2)와 같이 도트(.) 연산자를 사용
파이썬 메서드(method: 클래스 안에 구현된 함수)의 첫 번째 매개변수 이름은 관례적으로 self를 사용한다. 객체를 호출할 때 호출한 객체 자신이 전달되기 때문에 self를 사용한 것이다. 물론 self말고 다른 이름을 사용해도 상관없다.
a 객체에 객체변수가 생성되고 값이 저장됨
class FourCal:
def __init__(self, first, second):
self.first = first
self.second = second
def add(self):
result = self.first + self.second
return result
a = FourCal(4, 2)
a.add() # 6
: setdata 대신에 __init__ 사용
: 어떤 클래스를 만들 때 다른 클래스의 기능을 물려받을 수 있게 만드는 것
class MoreFourCal(FourCal):
def pow(self):
result = self.first ** self.second
return result
a = MoreFourCal(4, 2)
a.pow() # 16
: 부모 클래스(상속한 클래스)에 있는 메서드를 동일한 이름으로 다시 만드는 것. 부모클래스의 메서드 대신 오버라이딩한 메서드가 호출된다.
class Family:
lastname = "김"
# 클래스 변수를 변경하면?
Family.lastname = "박"
a = Family()
# 클래스로 만든 객체의 lastname 값도 모두 변경된다
print(a.lastname) # 박
# 클래스가 아니라 객체 a의 객체변수 lastname을 새로 생성하면?
a.lastname = "최"
# Family 클래스의 lastname과는 상관없다
print(b.lastname) # 박
: 함수나 변수 또는 클래스를 모아 놓은 파일
: 파이썬 확장자 .py로 만든 파이썬 파일은 모두 모듈이다.
import 모듈이름
: 모듈이름.모듈함수()
from 모듈이름 import 모듈함수
: 모듈함수()
from 모듈이름 import *
: 모듈의 모든 함수를 불러서 사용하겠다
: 도트(.)를 사용하여 파이썬 모듈을 계층적(디렉터리 구조)으로 관리할 수 있게 해준다.
하위 패키지가 자동으로 import 되지 않을 때, 수동으로 import
import 패키지명.모듈명
import 패키지명.하위 패키지명
예: Pandas, Numpy 등등
__init__.py 파일은 해당 디렉터리가 패키지의 일부임을 알려주는 역할을 한다. 만약 game, sound, graphic 등 패키지에 포함된 디렉터리에 __init__.py 파일이 없다면 패키지로 인식되지 않는다.
: 패키지의 집합으로 패키지 보다 포괄적인 개념이지만, 혼용해서 사용