''' 클래스 상속 '''
class FourCal():
def __init__(self,first,second):
self.first=first
self.second=second
def add(self):
result = self.first + self.second
return result
class joon(FourCal):
def pow(self):
result = self.first - self.second
return result
a = FourCal(3,5)
print(a.add()) # 8출력
c = joon(3,2) # FourCal의 생성자에 의해 변수가 저장된다.
print(c.pow()) # 1 출력
''' 메서드 오버라이딩 '''
class FourCal: # 부모 클래스 선언
def __init__(self,first,second):
self.first = first
self.second = second
def add(self):
result = self.first + self.second
return result
class joon(FourCal):
def add(self): # 부모 클래스의 메소드가 무시되고 자식 클래스의 메소드가 실행된다.
if self.second==0: # 자역변수, 전역변수를 생각하면 쉽다.
return 0 # 이 자식 클래스는 second가 0일 때만 동작을 하고
else:
result = self.first - self.second # 0이 아닌 경우에는 부모 클래스의 값을 통해 실행된다.
return result
d=joon(4,1)
print(d.add()) # 3이 출력된다. 즉, joon 클래스의 add 함수가 실행된 것이다.
class wow():
def setnumber(self,first,second):
self.first = first
self.second = second
def div(self):
result=self.first/self.second
return result
a=wow()
a.setnumber(5,6)
print(a.div())
class ho(wow):
def div(self):
self.result=self.second/self.first
return self.result
b=ho()
b.setnumber(5,6) # 1.2가 출력된다. 즉 ho 클래스의 div함수가 실행된 것이다.
print(b.div())
''' 모듈 '''
# mod1.py
def add (a,b):
return a + b
def sub (a,b):
return a - b
# 1.py
import mod1
print(mod1.add(3,4))
print(mod1.sub(4,2))
from mod1 import add
print(add(3,4))
#print(sub(3,4)) # sub은 실행하지 못하게된다.
print(mod1.sub(3,4)) # add만 불러왔기 때문에 sub는 따로 지정해야 사용이 가능하다.
from mod1 import add,sub
print(add(3,4))
print(sub(3,4))
from mod1 import *
print(add(3,4))
print(sub(3,4))
''' if __name__=="__main__": 의 의미
# mod1.py
def add (a,b):
return a + b
def sub (a,b):
return a - b
print(add(3,4))
print(sub(3,4))
# 1.py
import mod1 # 7과 -1이 출력되어버린다.
#########################################################################################
# mod1.py
def add (a,b):
return a + b
def sub (a,b):
return a - b
if __name__=="__main__": #mod1.py에 추가한다.
print(add(3,4))
print(sub(3,4))
# 1.py
import mod1 # 7과 -1이 더 이상 출력되지 않는다.
# mod2.py
PI = 3.141592
class Math:
def solv(self,r):
return PI*(r**2)
def add(a,b):
return a+b
# 1.py
import mod2
print(mod2.PI) # 3.131592 출력
a=mod2.Math()
print(a.solv(2)) # 12.566368 출력
print(mod2.add(mod2.PI,4.4)) # 7.541592 출력