python47 python - 집합 자료형, 교집합, 합집합, 차집합 집합 자료형 집합(set)은 집합에 관련된 것을 쉽게 처리하기 위한 자료형이다. 집합 자료형은 set 키워드를 이용해 만들 수 있다. ### 집합 자료형 # 집합 자료형 만들기 a = set([1,3,5]) a b = set("List") b 집합 자료형의 특징 1) 중복을 허용하지 않음 2) 순서가 없음(Unordered) set 자료형은 순서가 없기에, indexing으로 값을 얻을 수 없다. set 자료형에 저장된 값을 인덱싱으로 접근하려면 list나 tuple로 변환한 뒤 접근해야한다. # 위 코드 생략 # set 자료형 indexing l1 = list(a) l1 t1 = tuple(a) t1 교집합, 합집합, 차집합 구하기 1) 교집합 : &, intersection() # set 자료형 만들.. 2022. 5. 2. python - 추상클래스(abstract class) 추상클래스(abstract class)란 추상클래스란 미구현 추상메소드를 한 개 이상 가지며, 자식클래스에서 해당 추상 메소드를 반드시 구현하도록 강제한다. 상속받은 class는 abstract method를 구현하지 않아도, import할 때까지 에러는 발생하지 않으나 객체를 생성할 시 에러가 발생함. ### 추상메소드 # 추상메소드 형식 from abc import * class 추상클래스명(metaclass=ABCMeta): @abstractmethod def 추상메소드(self): pass 예제) abstract.py 만들기 from abc import * class AbstractCountry(metaclass=ABCMeta): name = '국가명' population = '인구' capita.. 2022. 5. 2. python - 객체 지향 프로그래밍(클래스, 생성자, 인스턴트 변수, 메소드) Class 생성 class Cal(object): def __init__(self, v1, v2): # v1, v2 : __init__내부에서만 사용가능한 지역변수 # 데이터 초기화 함수 if isinstance(v1, int): # isinstance : instance가 존재하는 지 확인하는 함수 self.v1 = v1 if isinstance(v2, int): self.v2 = v2 사칙연산이 가능한 계산기 클래스를 만들어보자. Class 안에 구현된 함수를 Method라고 부른다. ※ __init__ - constructor(생성자)라고 불리는 초기화를 위한 함수(method) - 인스턴스화를 실시할 때 반드시 처음에 호출되는 특수한 함수 - 인스턴스 생성과 관련해 데이터 초기화를 실시하는 함수 .. 2022. 5. 2. python - Override (재정의) 다형성 다형성이란 하나의 변수명이나 함수명이 상황별로 다른 의미로 해석될 수 있다는 점이다. 다형성은 Overriding, Overloading이 가능하다는 말이다. Overriding 부모클래스의 method와 같은 이름, 매개변수를 재정의 하는 것. Overloading 같은 이름의 함수를 여러개 정의하고, 매개 변수의 타입, 개수를 다르게 하여 매개변수에 따라 다르게 호출할 수 있게 하는 것. Override(재정의) class의 C1, C2가 다를 때 class C1을 C2가 Override 할 때 ### Override # 재정의 class C1: # class def m(self): # method return 'parent' class C2(C1): # Class C1을 상속받음 def m(.. 2022. 4. 29. python - Class member, Class method 클래스 멤버(Class member) Class Member : class에 소속되어있는 변수와 메소드를 말한다. year라는 method는 각각의 method가 누구의 소속이냐에 따라서, 소속된 instance의 내부값을 이용해서 결과를 return해 준다. 각각의 method는 각각의 instance에 소속되어있음을 알 수 있다. class method VS instance method 차이? year() method는 d1, d2에 소속되어 있지만, today() method는 Date(class)에 소속되어있다. instance는 내부적으로 어떠한 정보/데이터를 가지고 있다. d1, d2의 차이점은 데이터의 상태가 다른 것이다. today()는 어떤 instance에 소속되지 않았기에, Date라.. 2022. 4. 29. python - 상속(inheritance) 상속 Inheritance 상속 Inheritance 부모클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게하는 것으로, 일부분 변경이 필요한 경우 자식클래스에서 해당 기능만 수정(정의)하여 사용할 수 있다. python - 상속(inheritance) 상속이 없을 때 # 상속의 문법 class Class1(object): def method1(self): return 'm1' c1 = Class1() print(c1.method1()) ## 상속이 없을 때 class Class2(object): def method1(self): return 'm1' def method2(self): return 'm2' c2 = Class2() print(c2.method1()) print(c2.method2()).. 2022. 4. 28. pyhthon - 인캡슐레이션Encapsulation(캡슐화) 인캡슐레이션(캡슐화) 좋은 부품이란? 왼쪽 < 오른쪽 - 왼쪽 : 매우 복잡해서 여러가지 외부 요인에 의해 오동작할 가능성이 큼 - 오른쪽 : 부품의 내부적인 것들을 견고한 케이스로 감싸고 있어, 외부적인 요인에 영향을 받지 않음. ※ 캡슐화Encapsulation(케이스를 씌운다) : 외부의 영향을 최소화하고, 부품이 잘 동작할 수 있도록 한다. 객체 내부에 포함되어 있는 여러가지 것(데이터 등)들이 외부로부터 영향을 받지 않도록 하는 프로그래밍적 기능, 기법을 말한다. 캡슐화의 목적 1. 코드를 재수정 없이 재활용 할 수 있다. 2. 접근 제어자를 통한 정보은닉이 가능하다. 객체 지향 프로그래밍에서는 캡슐화를 통해 객체가 외부에 노출되면 안되는 정보/기능을 접근제어자를 통해 적절히 제어 권한이 있는 .. 2022. 4. 28. python - 객체 지향 프로그래밍(Object Oriented Programming) 객체 지향 프로그래밍(Object Oriented Programming) 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고, 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 객체 지향 프로그래밍 장단점 - 코드 재사용이 용이 남이 만든 클래스를 가져와서 이용할 수 있고 상속을 통해 확장해서 사용할 수 있다. - 유지보수가 쉬움 절차 지향 프로그래밍에서는 코드를 수정해야할 때 일일이 찾아 수정해야하는 반면 객체 지향 프로그래밍에서는 수정해야 할 부분이 클래스 내부에 멤버 변수혹은 메서드로 존재하기 때문에 해당 부분만 수정하면 된다. - 대형 프로젝트에 적합 클래스 단위로 모듈화시켜서 개발할.. 2022. 4. 27. python - 모듈(modules)란? module 모듈이란? 모듈 module란 함수나 변수 또는 클래스를 모아 놓은 파일을 말한다. module은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고 할 수 있다. 복잡도를 낮추는 편리하고 중요한 기능으로, 연관되어 있는 것들을 하나의 이름으로 묶음으로써 복잡한 상황의 복잡도를 낮춰주는 걸 모듈(module)이라 한다. 다른 사람들이 이미 만들어 놓은 모듈을 사용하거나, 모듈을 직접 만들어서 사용할 수도 있다. 내장 모듈 ## 내장모듈 import math # math라는 이름의 모듈을 가져온다. math.ceil(2.6) # 올림 : 2.6보다 큰 정수를 가져옴 math.floor(2.7) # 내림 : 2.7보다 작은 정수를 가져옴 math.sqrt(16) # 루트 :.. 2022. 4. 27. 이전 1 2 3 4 5 6 다음 반응형