Python 错误:导入错误:无法导入名称';doSum';从';总和';(G:\firstpy\Sum.py)
我在一个名为firstpy的文件夹中有两个python文件。但是,当我试图导入一个名为Sum的python文件函数时,它给出了前面提到的错误。这两个文件是: Sum.py:Python 错误:导入错误:无法导入名称';doSum';从';总和';(G:\firstpy\Sum.py),python,python-3.x,Python,Python 3.x,我在一个名为firstpy的文件夹中有两个python文件。但是,当我试图导入一个名为Sum的python文件函数时,它给出了前面提到的错误。这两个文件是: Sum.py: class Sum: def doSum(a,b): print(a+b) #class with methods class Sum: def class_method(self): print("dostuff") #only a method def doS
class Sum:
def doSum(a,b):
print(a+b)
#class with methods
class Sum:
def class_method(self):
print("dostuff")
#only a method
def doSum(a,b):
print(a+b)
Calculator.py:
from Sum import doSum
class Calculator:
doSum(4,5)
from Sum import Sum
class Calculator:
def __init__(self):
self.sum = Sum()
def calculate(self, a, b):
return self.sum.do_sum(a, b)
请告诉我错误是什么,解决方案对我不起作用。您在类中定义了方法“Sum”类,因此必须导入该类,实例化它,然后才能使用该方法(从该类) 如果只想导入方法,则必须在类外声明它 Sum.py:
class Sum:
def doSum(a,b):
print(a+b)
#class with methods
class Sum:
def class_method(self):
print("dostuff")
#only a method
def doSum(a,b):
print(a+b)
您在一个类中定义了方法“Sum”类,因此您必须导入该类,实例化它,然后才能使用该方法(从该类) 如果只想导入方法,则必须在类外声明它 Sum.py:
class Sum:
def doSum(a,b):
print(a+b)
#class with methods
class Sum:
def class_method(self):
print("dostuff")
#only a method
def doSum(a,b):
print(a+b)
使用纯函数而不是类或将此函数设为静态: 总之,是的
def do_sum(a, b):
# your code
然后您可以这样导入它:从Sum import do\u Sum
。
或者试试这个:
class Sum:
@staticmethod
def do_sum(a, b):
# your code
导入:从Sum导入Sum
并调用:Sum.do\u Sum(args)
如果仍要使用类,请在Calculator.py中:
from Sum import doSum
class Calculator:
doSum(4,5)
from Sum import Sum
class Calculator:
def __init__(self):
self.sum = Sum()
def calculate(self, a, b):
return self.sum.do_sum(a, b)
顺便说一句,您不必像在Java中那样用大写字母命名模块。此外,还有另一种名称约定——不是驼峰式,而是蛇式(doSum->do_sum)使用纯函数而不是类,或者将此函数设置为静态: 总之,是的
def do_sum(a, b):
# your code
然后您可以这样导入它:从Sum import do\u Sum
。
或者试试这个:
class Sum:
@staticmethod
def do_sum(a, b):
# your code
导入:从Sum导入Sum
并调用:Sum.do\u Sum(args)
如果仍要使用类,请在Calculator.py中:
from Sum import doSum
class Calculator:
doSum(4,5)
from Sum import Sum
class Calculator:
def __init__(self):
self.sum = Sum()
def calculate(self, a, b):
return self.sum.do_sum(a, b)
顺便说一句,您不必像在Java中那样用大写字母命名模块。此外,还有一些其他的名称约定-不是驼峰式,而是蛇式(doSum->do_sum)为什么到处都在创建类?我只是在学习python,所以我尝试将一个模块导入另一个模块。这不是Java,你不必创建大量的类。当您导入Sum时,将导入名为
Sum.py
的文件。在一个类中定义的任何函数都不是从该类中单独导入的。那么如何导入该函数呢?你不能从一个类中导入函数。你为什么到处创建类?我只是在学习python,所以我尝试将一个模块导入另一个模块。这不是Java,你不必创建大量的类。当您导入Sum时,将导入名为Sum.py
的文件。类中定义的任何函数都不是从该类中单独导入的。那么如何导入该函数呢?您不能从类中导入函数。我有您的实例化方法,但您能告诉我如何在类之外声明该方法吗?这不是一个缩进错误吗?关键是你不需要python中的类来拥有方法,看看编辑来查看示例代码我有你的实例化方法,但是你能告诉我如何在类之外声明方法吗?这不是一个缩进错误吗?关键是python中的类不需要有方法,请查看编辑以查看示例代码