반응형
런타임에 메서드에 대한 코드를 생성해야합니다. 임의의 코드를 실행하고 독 스트링을 가질 수 있어야합니다.
exec
와 setattr
을 결합한 솔루션을 생각해 냈습니다. 여기에 더미 예제가 있습니다.
class Viking(object):
def __init__(self):
code = '''
def dynamo(self, arg):
""" dynamo's a dynamic method!
"""
self.weight += 1
return arg * self.weight
'''
self.weight = 50
d = {}
exec code.strip() in d
setattr(self.__class__, 'dynamo', d['dynamo'])
if __name__ == "__main__":
v = Viking()
print v.dynamo(10)
print v.dynamo(10)
print v.dynamo.__doc__
동일한 결과를 얻는 더 좋고 / 안전하고 / 더 관용적 인 방법이 있습니까?
해결 방법
Theran의 코드를 기반으로하지만 클래스의 메서드로 확장합니다.
인쇄해야하는 항목 :
참조 페이지 https://stackoverflow.com/questions/533382
반응형
'파이썬' 카테고리의 다른 글
파이썬 Histogram Matplotlib (0) | 2020.10.07 |
---|---|
파이썬 Python에서 jpg 파일을 표시하는 방법은 무엇입니까? (0) | 2020.10.07 |
파이썬 Python 문서에 javadoc 사용 (0) | 2020.10.07 |
파이썬 일련의 목록의 데카르트 곱을 얻습니까? (0) | 2020.10.07 |
파이썬 좋은 Python ORM 솔루션은 무엇입니까? (0) | 2020.10.07 |
댓글