수업정리/Fundamental
Python basic 5 - object(), super(), repr(), grob()
GreenBNN
2023. 4. 14. 14:26
우선 파이썬은 객체지향형 언어이다.
따라서 우리가 쓰는 내장함수들도 사실 객체이다.
a = int()
type(a) # class <int>
dir(a)
a 에 int() 함수로 int 형 객체를 할당하고 type(a) 를 하면 int 라는 객체가 나온다.
dir(a) 로 int 형 객체안에 쓸 수 있는 데이터? 함수? 등을 볼 수 있다.
마찬가지로 object() 함수를 사용해 객체를 만들 수 있다.
obj = object()
type(obj) # class <object>
dir(obj)
super() 라는 함수는 super class 즉, 부모클래스의 임시적인 객체를 반환해 부모클래수의 메소드를 사용할 수 있게 하는것이다.
첫번째 매개변수로 type 을 입력받고 두번째 매개변수로 object 또는 type 을 입력한다.
class Animal:
def __init__(self, name):
self.name = name
print("Animal 생성자 호출")
def move(self):
print("움직인다.")
class Dog(Animal):
def __init__(self, name):
super().__init__(name)
print("Dog 생성자 호출")
def move(self):
super().move()
print("개가 움직인다.")
my_dog = Dog("바둑이")
my_dog.move()
이런식으로 자식 클래스에서 부모 클래스 메소드 사용 가능
repr() 함수는 파이선에서 객체의 표현을 나타내는 문자열을 반환한다.
매개변수로 표현하고자 하는 것을 받는다.
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return f'MyClass({self.x}, {self.y})'
obj = MyClass(1, 2)
print(repr(obj))
실행결과는 MyClass(1,2) 로 나온다.
우리가 만든 객체를 repr() 을 통해 보기 좋게? 표현할 수 있다.
glob() 은 파이썬 안에서 파일 경로명을 다룰 때 유용하게 사용된다.
import glob
files = glob.glob('*.txt')
print(files)
for a_file in files:
readin = open(a_file).read()
print(readin)
위 코드는 현재 디렉토리에서 확장자가 .txt 인 모든 파일을 찾아 출력하는 함수이다.
그리고 각각의 파일을 읽어 출력한다.