Python分文件函数调用报错:NameError问题求助
问题解决方法
1. 修正函数调用方式
你在main.py中导入my_functions模块后,直接调用getAssetHoldings会触发名称未定义错误,因为该函数属于my_functions的模块命名空间,而非全局命名空间。两种修正方式:
方式一:通过模块名调用
修改main.py里的调用代码:
df_assets = my_functions.getAssetHoldings(df_sq)
方式二:直接导入指定函数
将main.py的导入语句替换为:
from my_functions import getAssetHoldings
之后即可直接调用getAssetHoldings(df_sq)。
2. 修复stock_functions.py内部变量错误
getAssetHoldings函数的参数是df,但函数内部使用了未定义的df_transactions,且还有一处赋值错误,需同步修正:
def getAssetHoldings(df): df_numberAssets_k = df[df['Transaktionen'].isin(['Buy'])] df_numberAssets_k = df_numberAssets_k[['Symbol','Quantity']] df_numberAssets_v = df[df['Transaktionen'].isin(['Sell'])] df_numberAssets_v = df_numberAssets_v[['Symbol','Quantity']] # 原代码误写为df_numberAssets_k .... return df_current_assets
3. 额外检查点
- 确认
my_functions文件夹下的__init__.py无语法错误,当前代码可正常将子模块内容导入到模块命名空间。 - 检查VS Code使用的Python解释器为你指定的3.9.2版本,避免环境不一致引发问题。
内容的提问来源于stack exchange,提问作者Roberto S
相关产品推荐
相关产品推荐

