如何创建名称含点的函数?(类似Lua的实现方式)
Python 实现带点命名形式的函数
对应你Lua里的写法,Python里有几种常见实现方式:
1. 使用类(最常用)
和Lua给表添加函数的逻辑一致,Python可以通过定义类并添加静态方法来实现:
class Something: @staticmethod def FunctionName(): print("Hello World!") # 调用 Something.FunctionName()
如果这个方法需要访问类的属性,可替换为@classmethod;要是不需要类/实例关联,静态方法完全匹配你要的直接调用形式。
2. 用字典或SimpleNamespace模拟Lua表
不想用类的话,可以用字典或者types.SimpleNamespace来模拟Lua的表结构:
字典方式
Something = {} def FunctionName(): print("Hello World!") Something["FunctionName"] = FunctionName # 调用方式1 Something["FunctionName"]() # 转成可点调用的对象 from types import SimpleNamespace Something = SimpleNamespace(**Something) # 调用方式2 Something.FunctionName()
直接使用SimpleNamespace
from types import SimpleNamespace Something = SimpleNamespace() def FunctionName(): print("Hello World!") Something.FunctionName = FunctionName # 调用 Something.FunctionName()
3. 使用模块
如果这个函数属于独立模块,创建Something.py文件:
# Something.py def FunctionName(): print("Hello World!")
在其他文件中导入模块调用:
import Something Something.FunctionName()
内容的提问来源于stack exchange,提问作者luka
相关产品推荐
相关产品推荐

