본문 바로가기

Python

파이썬 (callable, partial)

1. callable

callable은 파이썬 내장 함수로, 주어진 객체가 호출 가능한지 여부를 확인하는 데 사용된다. 호출 가능한 객체는 함수와 메서드, 클래스 등을 포함한다. callable은 인자로 전달된 객체가 호출 가능한 경우 True를 반환하고, 그렇지 않은 경우 False를 반환한다.

 

def my_function():
    print("Hello, world!")

class MyClass:
    def my_method(self):
        print("Hello from MyClass!")

my_object = MyClass()

print(callable(my_function))  # 출력: True
print(callable(my_object.my_method))  # 출력: True
print(callable(42))  # 출력: False
print(callable("hello"))  # 출력: False

 

 

2. Partial

partial은 functools 모듈에 있는 함수로, 함수의 일부 인자를 고정하여 새로운 함수를 생성하는 역할을 한다. partial 함수를 사용하면 기존 함수의 인자 중 일부를 미리 설정한 새로운 함수를 만들 수 있다.

 

구조 

functools.partial(func, *args, **kwargs)
func: 부분적으로 인자가 고정될 기존 함수입니다.
args: 고정 인자의 위치 인자들입니다.
kwargs: 고정 인자의 키워드 인자들입니다.

from operator import mul
from functools import partial

print(mul(10,10))

# 인수 고정
five = partial(mul, 5)
# 함수를 인자로 받을 수 있고,

# 또 함수를 변수에 할당했다.
print(five(10)) # 50
print(five(100)) # 500

six = partial(five, 6)
print(six()) # 30

# 구구단의 5단
print([five(i) for i in range(1,10)])
print(list(map(five, range(1,10))))


def my_function():
    print("Hello, world!")

class MyClass:
    def my_method(self):
        print("Hello from MyClass!")

my_object = MyClass()

print(callable(my_function))  # 출력: True
print(callable(my_object.my_method))  # 출력: True
print(callable(42))  # 출력: False
print(callable("hello"))  # 출력: False