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

调用Python函数时如何使用自定义my_math模块内预设的变量值

问题原因

你收到报错是因为模块my_math里定义的base、height属于模块级命名空间的变量,你在Python交互解释器的当前全局命名空间里没有定义这两个变量,直接写base、height解释器找不到对应的取值。

解决方法

你可以根据使用场景选择下面任意一种方案:

  • 方案1:调用时明确指定变量所属的模块命名空间
    直接在变量前加上模块名前缀即可,交互环境执行代码如下:
    >>> my_math.triangle(my_math.base, my_math.height)
    6.0
    
  • 方案2:导入模块时同步导入需要的变量
    导入时把模块内的变量也引入当前全局命名空间,后续就可以直接调用:
    >>> from my_math import triangle, base, height
    >>> triangle(base, height)
    6.0
    
  • 方案3:给函数参数设置默认值,无参数调用时自动使用模块内的默认值
    修改my_math.py里的函数定义,将模块变量设置为参数默认值:
    # my_math.py
    base = 3
    height = 4
    
    def triangle(base=base, height=height):
        return base*height/2
    
    后续直接无参调用即可自动使用模块内的默认值,也支持自定义传参覆盖默认值:
    >>> import my_math
    # 无参调用使用默认值
    >>> my_math.triangle()
    6.0
    # 传参时使用传入的取值
    >>> my_math.triangle(2,8)
    8.0
    

注意事项

如果你放开函数内部注释的base = 3、height = 4代码,这两个变量会成为函数内部的局部变量,优先级高于你传入的参数和模块级变量,无论你传什么参数,函数都会用局部变量的取值计算结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:36:03