Python模块问题

Python模块问题,python,module,Python,Module,我对python很陌生,学习python一直很艰难。我有一个主文件 import Tests from Tests import CashAMDSale CashAMDSale.AMDSale() 和现金销售 import pyodbc import DataFunctions import automa from DataFunctions import * from automa.api import * def AMDSale(): AMDInstance = DataFun

我对python很陌生,学习python一直很艰难。我有一个主文件

import Tests
from Tests import CashAMDSale

CashAMDSale.AMDSale()
和现金销售

import pyodbc
import DataFunctions
import automa
from DataFunctions import *
from automa.api import *

def AMDSale():
    AMDInstance = DataFunctions.GetValidAMD()
这是格特瓦利达姆

import pyodbc

def ValidAMD(GetValidAMD):
     (short method talking to a database)
我的错误出现在具有
AMDInstance=DataFunctions.GetValidAMD()的行中

我得到的错误是:AttributeError:“module”对象没有属性“GetValidAMD”


我一直在寻找答案,但没有任何结果。有什么想法吗?谢谢

当您创建文件
foo.py
时,您将创建一个python模块。当您执行导入foo时,Python会对该文件进行求值,并将其定义的任何变量、函数和类放入模块对象中,并将其指定给名称
foo

# foo.py
x = 1
def foo():
    print 'foo'

现在,假设您的项目结构是:

main.py
DataFunctions/
    __init__.py
    CashAMDSale.py
        def AMDSale(): ...
    GetValidAMD.py
        def ValidAMD(GetValidAMD): ...
您的
main
脚本可以
导入DataFunctions.CashAMDSale
并使用
DataFunctions.CashAMDSale.AMDSale()
,以及
导入DataFunctions.GetValidAMD
并使用
DataFunctions.GetValidAMD.ValidAMD()
签出

这是同样的问题。您正在导入属于模块的
DataFunctions
。我表示该模块中有一个名为DataFunctions的类,需要使用

from DataFunctions import DataFunctions
...
AMDInstance = DataFunctions.GetValidAMD()

DataFunctions
是一个文件夹,这意味着它是一个包,必须包含一个
\uuu init\uuuu.py
文件,python才能识别它

从包导入*时,不会自动导入其所有模块。这记录在

因此,要使代码正常工作,您需要显式导入所需的模块:

import DataFunctions.GetValidAMD
或者,您需要将以下内容添加到
数据函数的
初始化.py

__all__ = ["GetValidAMD"]

然后你可以从软件包中导入*
,所有收听的内容都将被导入

你可以发布
数据函数
模块的源代码吗?数据函数是我拥有的文件夹GetValidAMD inI应该澄清我的文件夹结构,对不起!它的
main.py DataFunctions/\uuuu init\uuupy GetValidAMD.py Tests/\uuu init\uupy CashAMDSale.py
谢谢,这很有帮助!:)成功了,谢谢你的帮助,我不知道!:)
main.py
DataFunctions/
    __init__.py
    CashAMDSale.py
        def AMDSale(): ...
    GetValidAMD.py
        def ValidAMD(GetValidAMD): ...
from DataFunctions import DataFunctions
...
AMDInstance = DataFunctions.GetValidAMD()
import DataFunctions.GetValidAMD
__all__ = ["GetValidAMD"]