Python中是否存在类似Solidity的Fallback Function?
Python中的"Fallback Function"实现
Python中可以通过**getattr**特殊方法实现类似Solidity中Fallback Function的功能——当访问对象不存在的属性(包括方法)时,该方法会被自动触发。
示例实现
class A: def __getattr__(self, function_name): # 返回可调用的逻辑,处理不存在的方法调用 def fallback(*args, **kwargs): print(f"Function {function_name} doesn't exist") return fallback
调用测试
a = A() a.non_existent() # 输出: Function non_existent doesn't exist a.unknown_method(100, msg="test") # 输出: Function unknown_method doesn't exist
关键说明
__getattr__的参数function_name就是尝试访问的不存在的方法名(或属性名)。- 我们在
__getattr__内返回一个自定义的fallback函数,这样调用不存在的方法时,实际执行的就是这个返回的逻辑,不会抛出AttributeError异常。 - 如果需要处理普通属性(而非方法)的访问,也可以在
__getattr__中直接返回对应值或执行其他自定义逻辑。
内容的提问来源于stack exchange,提问作者Mecanicul
相关产品推荐
相关产品推荐

