You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 23:25:21