반응형
Class
_ convention
class Price:
def __init__(self, price):
self._price = price
def _double_price(self):
return self._price * self_hidden_factor
def get_double_price(self):
return self._double_price()- 모듈 내에서만 사용하는 private 클래스/함수/변수/메서드를 선언할 때
_으로 시작한다. from module import *으로 임포트할 때 이 컨벤션으로 시작한 것들은 무시가 된다. 다만,weak internal use indicator라고 부르며 직접 가져다가 쓰는것은 가능한 정도로 완전한 private 을 강조할 수는 없다.
self
a = FourCal()
a.setdata(4, 2)
// def setdata(self, first, second):a->self- '4' -> 'first'
- '2' -> 'second'
FourCal.setdata(a, 4, 2)- 클래스를 통해 매서드를 호출할 수 있다.
constructor
class FourCal:
def __init__(self, first, second):
self.first = first
self.second = second
a = FourCal(4, 2)__init__는 생성자, 객체가 생성될때 자동으로 호출되는 메서드
inheritance
class MoreFourCal(FourCal):
def pow(self):
result = self.first ** self.second
return result- 상속은 기존 클래스를 변경하지 않고 기능을 추가하거나 기존 기능을 변경하려고 할 떄 사용한다.
method override
class SafeFourCal(FourCal):
def div(self):
if self.second == 0:
return 0
else:
return self.first / self.secondclass variable
class Family:
lastname = "김"
print(Family.lastname)
// 김
a = Family()
b = Family()
print(a.lastname)
print(b.lastname)
// 김
// 김
Family.lastname = '박'
print(a.lastname)
print(b.lastname)
//박
//박- 클래스 변수를 변경하면 모든 인스턴스의 클래스 변수가 변동된다
a.lastname = '최'
print(a.lastname)
// 최
print(Family.lastname)
// 박- 클래스 변수와 같은 객체변수가 생성될 수 있다.
- 클래스 변수에 영향을 주지는 않는다.
for _
for _ in range(10)
ret = [0 for _ in range(10)]if
if ret == 2:
return 0zip, 3 항 연산자
for num, word in zip(numbers, up_down):
if word == "UP":
left = left if num < left else num + 1global variable
result1 = 0
def add1(num):
global result1
result += num
return result1type
a = FourCal()
type(a)
// <class '__main__.FourCal'>반응형