名称错误:名称“(函数)”未定义[重复]

问题描述 投票:0回答:1

我在编写代码时遇到了我认为的某种异常情况。我创建了一个重现此错误的底漆。

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'

python function class
1个回答
0
投票

您的代码存在一些问题。 首先,类声明:

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)

我已经测试过了,它有效。

© www.soinside.com 2019 - 2024. All rights reserved.