파이썬(Python)/문법

[Python] 내장 함수란? 확인 방법 (아래 밑줄 2개, underscore, __init__, __repr__)

끄적끄적아무거나 2022. 9. 28. 09:35
반응형

 

목차

     

     

     

     

     

     

    파이썬 내장 함수란?

    파이썬이란 객체 지향 언어(OOP, Object Oriented Programming)으로 변수 선언이나 내부에 함수들은 실제 클래스로 이루어져 있습니다. 그리고 각 클래스에는 메소드(Method)라는 함수로 특성 기능을 수행할 수 있습니다.

     

    여기서 언더스코어(Underscore, 밑줄) 두 개로 표기된 함수를 가끔 보신적이 있습니다. 이는 클래스가 가진 자체 내장 함수라고 생각하시면 됩니다. 

     

    예제 코드>>

    var_a = 7
    print(type(var_a))
    print(repr(var_a))

     

    결과>>

    <class 'int'>
    7

     

    위에 예제 코드에서 var_a를 7이라는 정수(integer)로 선언 합니다. 그리고 type으로 확인 결과 int 라는 클래스 임을 알 수 있습니다.

     

    그리고 Class int의 내장 함수로 정의 된 repr은 represent의 약자로 사용되는 대표 값을 출력 해줍니다. repr(var_a)를 통해 var_a 변수가 사용하는 대표 값을 확인할 수 있습니다.

     

     

     

     

    파이썬 내장 함수 확인 방법

    내장 함수 확인은 dir로 간단하게 할 수 있습니다.

     

    예제 코드>>

    print(dir(int))

     

    결과>>

    ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__', '__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__', '__hash__', '__index__', '__init__', '__init_subclass__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__', '__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'as_integer_ratio', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes']

     

    int라는 클래스가 가지는 내장 함수는 위와 같이 다양하게 있습니다. __ 밑줄로 설정된 내장 함수는 앞서 예제와 같이 밑줄 2개를 없애고 실행하면 됩니다.

     

     

     

     

     

    파이썬 내장 함수 선언 방법

    파이썬에서 제공하는 int 클래스와 같이 사용자가 직접 클래스를 제작할 수 있습니다. 이때 __init__ 이나 __repr__ 을 사용해서 함수를 선안할 수 있습니다. 

     

    예제 코드>>

    class Student():
        def __init__(self):
            self.name = name
            self.birth = birth
            self.gender = gender
    
        def __repr__(self):
            return '<%r, %r, %r>' % (self.name,self.birth,self.gender)

     

    위에 Student라는 클래스를 선언했고 초기 값으로 name, birth, gender를 설정할 수 있고 repr을 통해 확인 가능 합니다.

    반응형