수업정리/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 인 모든 파일을 찾아 출력하는 함수이다.

그리고 각각의 파일을 읽어 출력한다.