【问题标题】:How to access a Class value outside of it如何访问它之外的 Class 值
【发布时间】:2021-01-25 20:34:17
【问题描述】:

很抱歉,我提出了这样一个愚蠢的问题,但是,现在我正在编写一个具有一些我自己不知道如何编写的功能的代码,所以我从堆栈溢出中复制了它们。我是一个我没有学过的课,但我大部分都懂。问题是,我如何访问其中创建的任何值。例

class SimpleApp(object):
    def __init__(self, master, filename, **kwargs):
        self.master = master
        self.filename = filename
        self.canvrt = tk.Canvas(master, width=200, height=200, bg="#FF5733")
        self.canvrt.pack()
        self.update = self.draw().__next__
        master.after(100, self.update)

    def draw(self):
        image = Image.open(self.filename)
        angle = 0
        while True :
            tkimage = ImageTk.PhotoImage(image.rotate(angle))
            canvas_obj = self.canvrt.create_image(
            100, 100, image=tkimage)
            self.master.after_idle(self.update)
            yield
            self.canvrt.delete(canvas_obj)
            angle += 1
            angle %= 360

如何从代码中访问canvrt?我需要访问这个类的canvrt outisde,所以我可以输入它,例如在一个函数中

【问题讨论】:

  • 请更新您的问题,并举例说明您希望访问 canvrt 的位置。
  • def clean(filename): for widgets4 in filename.winfo_children(): widgets4.destroy()
  • stop = tk.Button(buttonframe2 , text=" stop", bg='grey', command = lambda : SimpleApp(rotation, 'Russian Roulete/barabannogan.jpg') and clean(#cnvrt))
  • 希望你明白我的想法
  • @AppleCidar 的事情是,如果你创建了对象,你想在课堂外访问还是想从 master.winfo_children() 访问 self.canvrt

标签: python class tkinter


【解决方案1】:

取决于您要访问它的位置。

class NewClass():

    def __init__(self,msg):
        self.msg ="Hi"
 
    def print_msg(self):
       print("Message is : ", self.msg)
  1. 在任何类函数/方法中,您应该使用self,即

    self.msg
    
  2. 在类之外,使用一个对象来访问它,即

    obj = NewClass("hi")
    obj.msg
    //will print Hi
    

【讨论】:

    【解决方案2】:

    你创建了 SinpleApp 类的一个实例:

    myapp = SimpleApp(master, filename)
    

    然后你可以像这样访问它的任何变量:

    myapp.canvrt
    

    但是,请注意,如果函数需要一个 tkinter 小部件,则调用 filename 函数的参数 clean 会令人困惑......

    【讨论】:

      猜你喜欢
      • 2020-05-04
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 2020-07-31
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多