Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- SQL
- 멀티스레딩
- 백준
- stored function
- Stored Procedure
- 한 권으로 읽는 컴퓨터 구조와 프로그래밍
- 프로그래머스
- 퓨처셀프
- JP Study
- mysql
- WIL
- 혼자 공부하는 SQL
- Django
- 덴드로그램
- Recommender system
- 1463
- Til
- PCA
- computer science
- FastAPI
- 컴퓨터 과학이 여는 세계
- CS
- 선형대수
- 다시 왔다!
- 엘런 튜링
- 2023
- Programmers
- MVT
- 문제풀이
- 미래혁신대전
Archives
- Today
- Total
Growth Hoon
20231120_TIL_{Python_Class : [ 생성자 오버라이딩 ], Python_Function : [ 함수의 여러 매개변수 ] ,백준 : [1024번 문제] } 본문
TIL_Today I Learned
20231120_TIL_{Python_Class : [ 생성자 오버라이딩 ], Python_Function : [ 함수의 여러 매개변수 ] ,백준 : [1024번 문제] }
sayhoon 2023. 11. 20. 08:57Python Class 생성자 오버라이딩
부모 Class에서 상속받아 생성하는 자식 Class에서 생성자 오버라이딩 할 때
super().__init__() 에서 arguments 의 default 값이 없으면 값을 넣어주어야 한다.
# 부모 Class 생성
class Parents():
parants_num = 0 # Class 변수
def __init__(self, arg1, arg2, arg3): # 생성자
self.arg1 = arg1 # instance 변수 (인스턴스 변수)
self.arg2 = arg2
self.arg3 = arg3
Parents.parants_num += 1 # Class 변수에 1을 넣어주어서 Parents Class가 몇개 생성 되었는지 확인
def talk(self,text): # Class 내 함수
self.text = text
# 상속 (자식 Class 생성)
class Children(Parents):
children_num = 0
def __init__(self,arg1,arg2,arg3):
super().__init__(1,2,3) ## 생성자 오버라이딩
## super()를 통해서 생성자 오버라이딩 할 때, 인자(Arguments)값을 넣어주어야 함.
## 안 넣어주면 안되더라구
Children.children_num += 1
mother = Parents(1,2,3)
father = Parents(2,3,4)
print(f"Parants Class number : {mother.parants_num}")
son1 = Children(1,2,3)
son2 = Children(2,3,4)
print(f"Children Class number : {son2.children_num}")
부모 Class에서 Arguments들의 default값을 지정해주면 아래와 같이 arguments값을 안 넣어주어도
생성자 오버라이딩이 가능하다
# 부모 Class 생성
class Parents():
parants_num = 0 # Class 변수
def __init__(self, arg1=None, arg2=None, arg3=None ): # 생성자
self.arg1 = arg1 # instance 변수 (인스턴스 변수)
self.arg2 = arg2
self.arg3 = arg3
Parents.parants_num += 1 # Class 변수에 1을 넣어주어서 Parents Class가 몇개 생성 되었는지 확인
def talk(self,text): # Class 내 함수
self.text = text
# 상속 (자식 Class 생성)
class Children(Parents):
children_num = 0
def __init__(self,arg1,arg2,arg3):
super().__init__() ## 생성자 오버라이딩
Children.children_num += 1
mother = Parents(1,2,3)
father = Parents(2,3,4)
print(f"Parants Class number : {mother.parants_num}")
son1 = Children(1,2,3)
son2 = Children(2,3,4)
print(f"Children Class number : {son2.children_num}")
Python 함수에서 사용하는 매개변수에 대해서
1. 일반적인 매개 변수 사용 방법
## 일반적인 함수 사용
def func1(arg1, arg2):
sum_ = arg1 + arg2
return sum_
def func2(arg1 = 1, arg2 = 2):
sum_ = arg1 + arg2
return sum_
print(f"function1_result = {func1(1,2)} // function2_result = {func2()}")
2. 위치 가변 매개변수 사용 방법
## 위치 가변 매개변수
# -> arguments로 몇개의 값이 들어가도 상관이 없음 // *arg에서 매개변수는 튜플 형태로 들어가게 됨.
def func3(*arg):
sum_ = 0
print_type = type(arg)
for i in arg:
sum_ += i
return sum_, print_type
print(f"function3_resunlt = {func3(1,2,3,4,5,6,7,8,9,10)[0]} // *arg type = {func3(1,2,3)[1]}")
## 위치 가변 매개변수 오류나는 방법
def func4(*arg, arg1,arg2):
sum_ = arg1 + arg2
return sum_
# print(f"Expectation 3 But result {func4(1,2)}") ## Error 발생 *arg로 값을 다 받기 떄문이다.
print(f"{func4(arg1 = 1,arg2 = 2)}") ## 위 함수를 사용하기 위해서는 키워드 지정방식으로 사용해야 한다.
3. 키워드 가변 매개변수
## 키워드 가변 매개변수
# python dictionary 형태로 argument 값을 받는다
def func5(**kwargs):
print_type = type(kwargs)
for key, value in kwargs.items():
print((key,value) ,end = ' ')
print(print_type)
func5(name = 'Sayhoon', age = 26, gender = 'male')
백준 1024번 문제 - 순열의 합 {스스로 못 품}
[블로그 참조] - https://star7sss.tistory.com/948
[문제 링크] - https://www.acmicpc.net/problem/1024
# 입력
N, L = map(int, input().split())
# 탐색
for n in range(L, 101):
x = N/n - (n+1)/2
if int(x) == x:
x = int(x)
if x + 1 >= 0:
for i in range(x+1, x+n+1):
print(i, end=" ")
break
else:
print(-1)
'TIL_Today I Learned' 카테고리의 다른 글
20231125_TIL_{Python : [ Django 연습, Programmers 문제], JPstudy : [ 장철원 강사님과의 미팅 ] } (1) | 2023.11.25 |
---|---|
20231124_TIL_{ 프론트앤드 : [ inline 요소와 block요소에 관하여 ], 선형대수학 : [ 스칼라부터 행렬까지 ] (0) | 2023.11.24 |
20231119_TIL_{Python : [class, 생성자(__init__), 상속, method overriding, (0) | 2023.11.19 |
20231027_TIL_프로그래머스 (0) | 2023.10.31 |
20231026_TIL_프로그래머스 & ADsP(OLTP와 OLSP) (0) | 2023.10.26 |