파이썬에서는 문자열을 기반으로 함수를 호출할 수 있습니다.
1. getattr을 사용하여 문자열에서 함수를 호출합니다.
여러 프로세스에서 문자열이 전달될 수 있는데 기존 함수를 어떻게 호출합니까? 주요 함수는 getattr 함수를 사용하는 것입니다. 이 함수는 문자열을 사용하여 문자열에 해당하는 함수를 가져옵니다.
모듈에는 두 가지 함수가 있습니다.
[root@python 530]# cat attr.py #!/usr/bin/env python def kel(): print 'this is a kel function' def smile(): print 'this is a smile function' if __name__ == '__main__': kel() smile()
위의 attr 모듈에는 두 가지 함수가 정의되어 있습니다. 한 함수는 kel이고 다른 함수는 smile입니다. 그러면 kel 및 smile 문자열을 기반으로 함수를 어떻게 실행합니까? 아래와 같이 getattr 함수를 사용합니다.
>>> import attr >>> k = getattr(attr,'kel') >>> k() this is a kel function >>> s = getattr(attr,'smile') >>> s() this is a smile function >>> e = getattr(attr,'errors') Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'errors'
첫 번째는 모듈을 직접 가져오면 모듈이 객체이므로 attr의 kel() 함수는 getattr의 kel 문자열에 따라 얻어지므로 여기서 마지막으로 Execution이 구현되고, 해당 기능은 다른 문자열에 따라 실행됩니다.
2. 사전을 사용하여 함수 호출
위 모듈의 정의는 그대로 유지되지만 호출 시 사전을 정의할 수 있습니다. , 사전의 값에 따라 다음과 같이 함수가 실행됩니다.
>>> import attr >>> d = {'kel':attr.kel,'smile':attr.smile} >>> d['kel']() this is a kel function >>> d['smile']() this is a smile function
사전의 값을 이용하여 함수를 호출할 수 있도록 합니다.
위의 두 가지 방법은 주로 문자열이 전달될 때 다른 함수를 호출하는 방법을 아는 데 사용됩니다. 그 다음 첫 번째 방법은 함수를 실행하기 위해 getattr을 사용하는 것입니다. 두 번째 방법은 사전을 정의하는 것입니다. 그런 다음 사전 값을 실행합니다.
위의 Python에서 문자열을 기반으로 함수를 호출하는 구현 방법은 모두 편집자가 공유한 내용이므로 참고가 되셨으면 좋겠습니다. PHP 중국어 사이트도 지원해 주시길 바랍니다.
파이썬에서 문자열 기반 호출 함수 구현과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!