gpt4 book ai didi

Python:如何修复我的代码,以便追加将参数添加到列表中?

转载 作者:太空宇宙 更新时间:2023-11-04 01:54:55 25 4
gpt4 key购买 nike

我是 python 的新手,我一直在尝试执行这段代码,我使用 tkinter 按钮命令来运行一个函数,它可以工作但是 append() 没有执行,这意味着它没有 append 到列表.

包含追加的列表和函数在类之外,然后通过使用 tkinter 按钮命令归类到类中

我试过将这个函数放在类中,它可以工作,但是追加不会再次添加到列表中。

这是我编写的代码,与真实代码有些相似

prices = []

f = True
class firstclass():
def __init__(self):
while f == True:
my_function()
f = False

def my_function():
prices.append(70)


class secondclass():

def __init__(self):
pass

print(sum(prices))

真实代码示例在此链接中,请同时考虑这一点 python: Appending a value to a list outside the class, function with append also outside the class, but function is called within a class

我预计它会打印 append 值 70,但它仍然打印 0

最佳答案

您需要处理的几个问题。首先在类外部分配 f=True 不会更改内部的值,因此如果您实例化该类,它只会抛出 UnboundLocalError 并提示 f 未初始化。您可以通过实例化类来自己尝试此操作

fc = firstclass()

如果没有实例化,您就没有希望它给您想要的值。它打印零是因为函数 secondclass 有一个打印语句不包含在方法中,因此它打印声明该类的值 sum(prices)。该值来自价格的原始声明值,即 []。至少那是您在问题中显示的方式。我不确定您是否打算缩进 print 语句,这意味着它是 secondclass 的一部分。但是,如果您没有缩进,您会得到与您没有实例化 firstclass 相同的结果。

要更正此问题,请参阅下文。此代码将按您的预期输出 70。

prices = []

class firstclass():
def __init__(self):
my_function()

def my_function():
prices.append(70)

class secondclass():
def __init__(self):
pass

print('before instantiation', sum(prices))
fc = firstclass()
print('after instantiation', sum(prices))

fc 现在是 firstclass 类型的对象,__init__ 方法调用了 my_function 将值 70 append 到 prices.

关于Python:如何修复我的代码,以便追加将参数添加到列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57015545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com