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

Python多应用共用通用函数类,如何高效导入其中的func4?

导入共用类中函数的高效方法

首先先修正你示例代码里的关键问题:类的实例方法必须包含self参数,装饰器func1的缩进也存在错误(return ret_func的层级不对),修正后的common_func.py基础版本如下:

import time

class common_funcs(object):
    
    def func1(func):
        def ret_func(*args, **kwargs):
            # 你的逻辑代码
            # statement (....)
            while True:
                odc = ****
                if odc == 100:
                    # statement (....)
                    continue
                break
            rsp = func(*args, **kwargs)  # 执行原函数并获取返回值
            return rsp
        return ret_func

    @func1
    def nda_cal(self, ar1, ar2):
        res = xxxx(ar1, ar2)
        return res
    
    def func3(self):
        # statement 1.... 
        return xyz
    
    def func4(self):
        return abc

针对导入func4的需求,提供三种高效实现方式:

方式1:实例化类后调用(通用场景)

在应用代码中直接导入类,创建实例后调用方法,适合需要调用多个类中方法的场景:

from common_func import common_funcs

# 创建类实例(可复用)
common_instance = common_funcs()
# 调用func4
result = common_instance.func4()

方式2:改为静态方法直接调用(无实例属性依赖时)

如果func4不需要访问类的实例属性或方法,可将其改为静态方法,无需实例化即可调用:

  1. 先修改common_func.py中的func4:
class common_funcs(object):
    # ...其他方法...
    @staticmethod
    def func4():
        return abc
  1. 在应用代码中直接导入调用:
# 方式2-1:通过类调用
from common_func import common_funcs
result = common_funcs.func4()

# 方式2-2:直接导入方法
from common_func.common_funcs import func4
result = func4()

方式3:模块级别导出方法(简化调用路径)

如果需要频繁调用func4,可在common_func.py末尾提前实例化并导出方法:

# 在common_func.py文件最后添加
_common_instance = common_funcs()
func4 = _common_instance.func4

之后在应用代码中就能直接导入使用:

from common_func import func4
result = func4()

关键注意点

  • 类的实例方法必须携带self参数,否则调用时会抛出参数不匹配的错误。
  • 装饰器func1要确保在内部正确执行原函数并返回结果,否则被装饰的方法(比如nda_cal)不会产生预期输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:40:25