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

Python跨文件调用类成员函数出现TypeError错误的解决咨询

解决Python实例方法调用错误

你遇到的TypeError是因为func是实例方法,必须先创建temp_class的实例,才能调用这个方法,直接通过类名调用会导致self参数缺失。下面是两种可行的解决办法:

方法1:先创建类实例再调用方法

修改FileA.py中的调用代码,先实例化temp_class,再调用func:

# FileA.py
import os,sys
from FileB import temp_class as T

# 业务代码
str = "somestring"
# 创建类的实例
t_instance = T()
# 通过实例调用方法
A, B, C = t_instance.func(str)

# 业务代码

FileB.py不需要修改,保持原代码即可。

方法2:将方法改为类方法或静态方法

如果你的业务逻辑不需要依赖类的实例属性,可以把func改成类方法或静态方法,这样就能直接通过类名调用:

改成类方法(使用@classmethod)

修改FileB.py:

# FileB.py
import os,sys

class temp_class:
    @classmethod
    def func(cls, S):
        # 业务代码
        return (someA,someB,someC)

此时FileA.py中的T.func(str)调用方式不需要修改,直接就能运行。

改成静态方法(使用@staticmethod)

修改FileB.py:

# FileB.py
import os,sys

class temp_class:
    @staticmethod
    def func(S):
        # 业务代码
        return (someA,someB,someC)

同样,FileA.py中的调用方式无需改动。


内容的提问来源于stack exchange,提问作者RC0993

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 09:35:04