Python中实现JavaScript类实例添加可调用函数的等效写法是什么?
Python中对应JavaScript构造函数实例添加方法的等效写法
在JavaScript中,我们可以给构造函数的实例添加可调用方法,示例代码如下:
const MyFunc = function(){ const myfunc = this myfunc.hi = () => { console.log('hi') } } const myFunc = new MyFunc() myFunc.hi()
你尝试的Python写法存在语法错误——Python不允许在赋值语句里直接用def定义函数。以下是几种等效的正确写法:
方法一:使用lambda表达式
适合逻辑简单的无参数场景,写法最简洁:
class MyClass: def __init__(self): self.hi = lambda: print('hi') # 调用示例 my_obj = MyClass() my_obj.hi() # 输出: hi
方法二:先定义内部函数再赋值
如果函数逻辑复杂(比如有多行代码、需要参数),适合先完整定义函数再绑定到实例属性:
class MyClass: def __init__(self): def hi_func(): print('hi') self.hi = hi_func # 调用示例 my_obj = MyClass() my_obj.hi() # 输出: hi
如果后续需要让方法访问实例自身的属性,可以借助functools.partial或者定义带self参数的函数再绑定,但你的示例场景不需要访问实例,上面两种写法就完全对应JavaScript的逻辑。
内容的提问来源于stack exchange,提问作者Dshiz
相关产品推荐
相关产品推荐

