gpt4 book ai didi

python - 如何在 Python 的不同类中使用变量?

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

这是我的代码:

class ProjectApp(tk.Tk):  

def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)

self.filepaths = []

class StartPage(tk.Frame):

def __init__(self, parent, controller, *args, **kwargs):
tk.Frame.__init__(self, parent, *args, **kwargs)
self.controller = controller
self.parent = parent

def get_file(self):

filepath = askopenfilename()

if filepath:
print(ProjectApp.filepaths)
self.parent.filepaths.append(filepath)

我正尝试在另一个类中使用文件路径,但出现以下错误。

AttributeError: type object 'ProjectApp' has no attribute 'filepaths'

能告诉我错在哪里吗?

最佳答案

这取决于你想要什么。对象有两种属性:类属性和实例属性。

类属性

类属性对于类的每个实例都是相同的对象。

class MyClass:
class_attribute = []

这里 MyClass.class_attribute 已经为类定义,您可以使用它。如果您创建 MyClass 的实例,每个实例都可以访问相同的 class_attribute

实例属性

实例属性仅在创建实例时可用,并且对于类的每个实例都是唯一的。您只能在一个实例上使用它们。在方法__init__中有定义。

class MyClass:
def __init__(self)
self.instance-attribute = []

在您的情况下,filepaths 被定义为实例属性。您可以为此更改您的类(class),您的 print(ProjectApp.filepaths) 将起作用。

class ProjectApp(tk.Tk):  
filepaths = []

def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)

如果您需要更多解释,我建议您阅读 this python文档的一部分

关于python - 如何在 Python 的不同类中使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38698025/

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