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
相关产品推荐
相关产品推荐

