python
-
[python] 파이썬의 정보은닉(Information Hiding)과 __dict__ 메서드에 대해코딩 연습/코딩배우기 2020. 9. 13. 15:20
■ 파이썬의 객체 외부에서 객체 내에 있는 변수(속성)나 메서드를 수정할 수 없게 하기 위한 코딩 규칙은 attribute, method 앞에 밑줄('_', undercore) 하나를 붙이는 것이다. 그리고, __dict__ 메서드로 변수(속성)정보를 확인하고, 속성값을 수정할 수 있지만, 이를 제한하고 싶을 경우 밑줄 두 개를 붙이는 방법이 있다. # 변수(속성)값을 수정할 수 있다. (잘못된 접근과 값의 수정) class Person: def __init__(self, n, a): self.name = n self.age = a def __str__(self): return '{0}: {1}'.format(self.name, self.age) def main(): p = Person('James', ..
-
[python] 파이썬 __str__ 메서드에 대해코딩 연습/코딩배우기 2020. 9. 13. 13:26
■ 파이썬에서 어떤 값(또는 객체)을 문자열로 변환하는데 사용하는 str()은 내장 함수가 아닌 파이썬 내장 클래스이며, 객체를 만들고 그 객체의 정보(클래스 이름, 저장 위치 등)를 알고싶을 때 print(객체이름)를 사용하는데, 이는 object 클래스의 __str__ 메서드가 호출되어 반환된 문자열 정보이다. >>> str >>> >>> t = (1, 2, 3) >>> str(t) '(1, 2, 3)' >>> t.__str__() # == str(t) '(1, 2, 3)' >>> >>> >>> class Simple: ... def __init__(self): ... pass ... >>> s = Simple() >>> >>> print(s) >>> >>> s.__str__() # str(s)와 같..
-
[python] 파이썬 __init__, __str__, __iter__, __next__ 등의 메서드코딩 연습/코딩배우기 2020. 9. 12. 21:01
■ 파이썬의 __init__, __str__, __iter__, __next__ 등의 메서드는 파이썬에 의해 호출되는 메서드로 스페셜 메서드라 한다. # 클래스에 스페셜 메서드 정의해보기 class Car: def __init__(self, id): self.id = id # 차량 번호 def __len__(self): return len(self.id) def __str__(self): return '차량 번호 : ' + self.id def __call__(self): print('__call__ 함수') def main(): c = Car('12가3456') c() # __call__ 메서드 호출 print(len(c)) # __len__ 메서드 호출 print(str(c)) # __str__ 메서..
-
[python] 파이썬 파일 쓰기, 읽기 - open(), read(), readline(), readlines()코딩 연습/코딩배우기 2020. 9. 11. 13:40
■ 파이썬 내장함수인 open()으로 파일 객체를 얻어서 파일을 생성하거나 쓰고, 읽을 수 있다. str1 = 'G2Bgo는 나라장터, 관공서입찰, 공공기관입찰, \ 군부대입찰 등의 경쟁입찰 건들에 대해 AI 분석을 통한 예정가격과 \ 낙찰률을 계산하며, 각 입찰공고 건에 대해 투찰을 할 수 있도록 \ 입찰금액을 제공해주는 입찰정보사이트입니다.' # 파일 쓰기 f = open('./g2bgo.txt', 'w') # 파일 객체 얻기 f.write(str1) f.close() # f는 # 파일 생성 'w' 모드는 기존 파일을 덮어쓴다. # (기존 파일 삭제 후 다시 생성 - 사용 시 주의 필요!!) # 파일객체 반복자(iterator)에 대해 for문으로 읽기 f = open('./g2bgo.txt') fo..
-
[python] 파이썬 클래스 상속(inheritance)코딩 연습/코딩배우기 2020. 9. 10. 11:48
■ 파이썬의 클래스 상속(inheritance) # 부모클래스가 갖는 모든 메서드가 자식클래스에도 담긴다. # 자식클래스에는 별도의 메서드를 추가할 수 있다. class Father: def run(self): print('so fast..!') class Son(Father): def jump(self): print('so high..!') def main(): s = Son() s.run() # so fast..! / 상속된 메서드 s.jump() # so high..! / 추가된 메서드 main() ■ 메서드 오버라이딩 # 상속 관계에서 부모클래스의 메서드와 동일한 이름의 메서드를 자식클래스가 정의하는 것 # 이 경우, 부모메서드는 보이지 않는 상태가 된다.(호출 불가 상태) class Father..
-
[python] 파이썬 클래스와 객체의 본질, 그리고 독특한 특성코딩 연습/코딩배우기 2020. 9. 9. 15:33
■ 객체 변수의 선언과 초기화 # 아래 클래스에서 메서드 정의만 보이고 변수 선언은 없지만, 파이썬은 객체에 필요한 변수 i를 알아서 생성해준다. i변수가 생성되는 시점은 객체 내에서 해당 변수를 대상으로 대입연산을 처음 진행하는 순간임 class Simple1: def set_i(self, i): self.i = i def get_i(self): return self.i s1 = Simple1() s1.set_i(200) # 객체 내 변수 i 생성, 200 대입(할당) print(s1.get_i()) # 200 s12 = Simple1() #s12.get_i() # 객체 내 i 변수 미생성 단계에서 호출하면 오류 발생 # AttributeError: 'Simple' object has no attrib..
-
[python] 파이썬 알고리즘 - 선택정렬(Selection Sort)코딩 연습/파이썬 기초(예제) 2020. 9. 9. 13:44
파이썬 선택정렬 - 정렬되지 않은 값등 중에서 가장 작은 값을 찾아서 제일 앞의 값과 교환하는 방식으로 정렬 ■ 선택정렬(Selection Sort) - 오름차순으로 정렬해보기 import random unorder_num =[] # 정렬되지 않은 숫자 추출하여 리스트에 넣기 for n in range(10): unorder_num.append(random.randint(1, 100)) print(unorder_num) index = 0 for i in range(len(unorder_num)): base = max(unorder_num)+1 # 비교할 기준 숫자, 리스트의 최대값+1로 구함 for j in range(i, len(unorder_num)): if base > unorder_num[j]: ..
-
[python] 파이썬 sort(), sorted() 알아보기코딩 연습/코딩배우기 2020. 9. 8. 23:03
파이썬 sort()는 원본을 변경시키는 함수인 반면 sorted()는 원본을 변경시키지 않는 정렬 방법의 함수이다. # 리스트 sort() ls = [3, 1, 4, 2] ls.sort() # 오름차순이 디폴트임 print(ls) # [1, 2, 3, 4] 원본 변경시킴 ls = [3, 1, 4, 2] ls.sort(reverse = True) # 내림차순 print(ls) lt = [('yoon', 33), ('lee', 35), ('park', 29)] lt.sort() print(lt) # [('lee', 35), ('park', 29), ('yoon', 33)] 이름 순 lt.sort(reverse = True) print(lt) # [('yoon', 33), ('park', 29), ('lee'..