我在编写代码时遇到了我认为的某种异常情况。我创建了一个重现此错误的底漆。
num2 = 1234
num1 = 123
class.class1():
def function1(num1, num2):
t = num1 + num2
return t
def function2(num1, num2):
print(function1(num1, num2))
class1.function2(num1, num2)
控制台
回溯(最近一次调用最后一次): 文件“/home/runner/Python/main.py”,第 12 行,位于 roro.function2(num1, num2) 文件“/home/runner/Python/main.py”,第 9 行,函数 2 中 打印(函数1(num1,num2)) 名称错误:名称“function1”未定义
我在网上没有找到答案,就请“replit”中的AI解决这个问题,但它给了我一个和我一模一样的“修正码”。总的来说,我已经走进了死胡同。 请帮忙。告诉我我做错了什么?
我为每个功能都添加了
self
,但没有用。
我做了this:“自动调用函数的对象被传递为
self
。
因此,如果您拨打
x.add(y)
,self 将是 x
,而 other
将是 y
”
班级
回溯(最近一次调用最后一次): 文件“/home/runner/Python/main.py”,第 11 行,位于 class1.num1.function2(num2) AttributeError:类型对象“class1”没有属性“num1”
回溯(最近一次调用最后一次): 文件“/home/runner/Python/main.py”,第 11 行,位于 class1.function2(num1, num2) 类型错误:class1.function2() 缺少 1 个必需的位置参数:'num2'
回溯(最近一次调用最后一次): 文件“/home/runner/Python/main.py”,第 11 行,位于 class1.function2(num1, num2) 类型错误:class1.function2() 缺少 1 个必需的位置参数:'num2'
您的代码存在一些问题。 首先,类声明:
class.class1():
应该是:
class class1:
并且您应该使用 self 来引用类成员函数。最终代码应该是:
num2 = 1234
num1 = 123
class class1:
def function1(self, num1, num2):
t = num1 + num2
return t
def function2(self, num1, num2):
print(self.function1(num1, num2))
c1 = class1()
c1.function2(num1, num2)
我已经测试过了,它有效。