【发布时间】:2019-08-29 14:59:26
【问题描述】:
我在 Python 中的一个类中工作,它有 3 个函数。
函数 1 和函数 2 各自行动,但函数 3 应该打印从假设 func_1 返回的内容。
我将 func_1 的函数名称传递给 func_3 但我无法得到正确的结果。当我创建名为“test”的类的实例时,我无法调用 test.func_3 并且我尝试了所有我知道或能够在互联网上找到的东西。
尝试在不将 func_1 传递给 func_3 的情况下调用它: "NameError: name 'func_1' is not defined"
将 func_1 传递给 func_3 并在没有参数的情况下调用它: "TypeError: func_3() 缺少 1 个必需的位置参数:'func_1'"
将 func_1 传递给 func_3 并使用参数调用它: "NameError: name 'func_1' is not defined"
这是工作代码(没有类,只有一些函数:
def func_1():
print("Print func_1 - Print_string")
return "ReturnFunc1 - Return_string | "
def func_2():
print("Print func_2 - Print_string")
return "ReturnFunc2 - Return_string | "
def func_3():
print("Anything below this line is printed because of calling func_3")
print("============================================================")
print("Print func_3 - Print_string")
print(func_1(), func_2())
func_1()
func_2()
func_3()
================================================ ====================
这是一个类,无论如何都不起作用:
class TestingClass():
def func_1(self):
print("Print func_1")
return "ReturnFunc1"
def func_2(self):
print("Print func_2")
return "ReturnFunc2"
def func_3(self,func_1):
print("Anything below this line is printed because of calling func_3")
print("============================================================")
print("Print func_3")
print(func_1)
test = TestingClass()
test.func_3(func_1)
我希望获得与不使用 Class 进行编码时相同的结果。
【问题讨论】:
-
用
print(self.func_1())替换print(func_1) -
如果他经过
test.func_1,他需要打电话给self.func_1()吗? -
不,但首先将
func_1作为参数传递是没有意义的......
标签: python python-3.x class