반응형
파이썬 함수이름 동적생성 및 호출방법 10가지
파이썬에서 함수 이름을 동적으로 생성하는 방법은 간단하게 가능합니다. 다음은 10가지 예제 코드입니다. 선택하는 방법은 코드의 목적 및 구조에 따라 달라질 수 있습니다.
1. 함수 선언 및 호출:
def dynamic_function1(value):
print(f"Value: {value}")
# 사용
dynamic_function1(42)
2. 함수 이름 동적 생성 및 호출:
def generate_and_call_function(prefix, suffix, value):
function_name = f"{prefix}_function_{suffix}"
globals()[function_name](value)
def dynamic_function2(value):
print(f"Value: {value}")
# 사용
generate_and_call_function("dynamic", "function2", 42)
3. setattr 함수를 사용한 동적 함수 추가:
class DynamicFunctions:
pass
def dynamic_function3(value):
print(f"Value: {value}")
setattr(DynamicFunctions, "dynamic_function3", dynamic_function3)
# 사용
instance = DynamicFunctions()
instance.dynamic_function3(42)
4. lambda 함수를 사용한 동적 함수 생성:
dynamic_function4 = lambda value: print(f"Value: {value}")
# 사용
dynamic_function4(42)
5. exec 함수를 사용한 동적 함수 생성 및 호출:
function_name = "dynamic_function5"
exec(f"def {function_name}(value): print(f'Value: {value}')")
# 사용
globals()[function_name](42)
반응형
6. 클래스 내에 동적 메서드 추가:
class DynamicFunctions:
pass
def dynamic_method(self, value):
print(f"Value: {value}")
setattr(DynamicFunctions, "dynamic_method", dynamic_method)
# 사용
instance = DynamicFunctions()
instance.dynamic_method(42)
7. functools.partial 함수를 사용한 부분 적용:
from functools import partial
def dynamic_function6(value, prefix):
print(f"{prefix}: {value}")
dynamic_partial = partial(dynamic_function6, prefix="Dynamic")
# 사용
dynamic_partial(42)
8. types.FunctionType 클래스를 사용한 동적 함수 생성:
import types
def dynamic_function7(value):
print(f"Value: {value}")
dynamic_function_type = types.FunctionType(
dynamic_function7.__code__, globals(), "dynamic_function7"
)
# 사용
dynamic_function_type(42)
9. types.MethodType 클래스를 사용한 동적 메서드 생성:
import types
class DynamicFunctions:
pass
def dynamic_method(self, value):
print(f"Value: {value}")
dynamic_method_type = types.MethodType(dynamic_method, DynamicFunctions())
# 사용
dynamic_method_type(42)
10. 딕셔너리를 활용한 동적 함수 호출:
dynamic_functions = {
"dynamic_function8": lambda value: print(f"Value: {value}"),
"dynamic_function9": lambda value: print(f"Another Value: {value}"),
}
# 사용
dynamic_functions["dynamic_function8"](42)
반응형
'코딩취미 > Python' 카테고리의 다른 글
[파이썬] 리스트 컴프리헨션(List Comprehension)사용방법 4가지 : 코드축약/줄이기 (0) | 2024.01.18 |
---|---|
[파이썬] 클래스 private와 protected 메소드 사용방법 및 특징 (0) | 2024.01.16 |
파이썬 파일이동 os.rename, shutil.move 차이와 사용 방법 (0) | 2023.12.12 |
파이썬 딕셔너리 사용방법 : 생성/삭제/업데이트/병합/정렬/제거 (0) | 2023.02.22 |
파이썬 리스트 사용방법 - 생성/삽입/슬라이싱/교집합/정렬/카운트 (0) | 2023.02.22 |