Python 导入具有不同类的模块
我有一个名为jaguar的模块,该模块下有不同的类。每个类中都有许多函数。当我通过导入整个模块时Python 导入具有不同类的模块,python,python-3.x,Python,Python 3.x,我有一个名为jaguar的模块,该模块下有不同的类。每个类中都有许多函数。当我通过导入整个模块时 import jaguar as jg 然后尝试调用名为read_excel的函数,它将错误显示为 AttributeError: module 'jaguar' has no attribute named 'read_excel' 相反,如果我一类一类地调用每个类并使用它,它就会工作 有人能帮我解决这个问题吗?没有看到您的代码,很难100%确定发生了什么。在未来,如果你加入一个新的答案,你可
import jaguar as jg
然后尝试调用名为read_excel的函数,它将错误显示为
AttributeError: module 'jaguar' has no attribute named 'read_excel'
相反,如果我一类一类地调用每个类并使用它,它就会工作
有人能帮我解决这个问题吗?没有看到您的代码,很难100%确定发生了什么。在未来,如果你加入一个新的答案,你可能会得到更多更好的答案 似乎最好避免Python在调用函数和方法时如何查找函数和方法的细节(这是双重的,因为我不是这方面的专家)。也就是说,问题在于您试图调用函数,就好像它是在模块级别定义的一样。但是,所讨论的函数实际上是在类(在该模块内)中定义的方法。您的jaguar.py文件结构如下:
""" jaguar module does jaguar-y stuff """
class TheClass:
def __init__(self):
# Do object initialization stuff
def read_excel(self):
print('In read_excel()')
""" jaguar module does jaguar-y stuff """
def read_excel():
print('In read_excel()')
class TheClass:
def __init__(self):
# Do object initialization stuff
在您的程序文件中,您尝试执行以下操作:
""" main program """
import jaguar as jg
jg.read_excel()
由于在模块级找不到该函数,因此将导致错误。相反,您需要实例化一个对象,然后调用该方法:
""" main program """
import jaguar as jg
my_ob = jg.TheClass()
my_ob.read_excel()
或者,您也可以在模块级别(即类之外)定义函数,如果这对您正在尝试的操作有效的话。因此,jaguar.py的结构如下:
""" jaguar module does jaguar-y stuff """
class TheClass:
def __init__(self):
# Do object initialization stuff
def read_excel(self):
print('In read_excel()')
""" jaguar module does jaguar-y stuff """
def read_excel():
print('In read_excel()')
class TheClass:
def __init__(self):
# Do object initialization stuff
后一个示例将允许您通过jg.read\u excel()
调用read\u excel(),如上面的第一个主程序示例所示
浏览上的教程可能会有所帮助。显示代码。并且只使用相关标签:这似乎与熊猫无关。
read\u excel
是模块级方法还是捷豹中某个类中的方法?您可以使用dir(jg)
@C.Nivs进行检查:这是我在jaguar module中名为excel的类下创建的一个函数