【问题标题】:Should a temporary (non-member) variable be used if not strictly necessary?如果不是绝对必要,是否应该使用临时(非成员)变量?
【发布时间】:2023-03-08 16:04:01
【问题描述】:

如果我正在定义一个类,并且我需要实例化一些对象,但这些对象不需要是属性,并且在类中没有进一步的引用,它们应该只是匿名实例化,还是临时实例化多变的? 例如,我正在用 python 制作一个 GUI 程序,只需要制作和放置某些按钮和标签,但除此之外不需要进一步的操作。那么在这两个中,这两个中的一个是首选吗?

class Foo(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)
        pass

    def bar(self):
        tk.Label(self, text="This is a label.")
class Foo(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)
        pass

    def bar(self):
        label = tk.Label(self, text="This is a label.")

一方面,我可以看到创建变量如何提高代码的可读性。另一方面,我不确定该变量是否会引入更多的内存使用,或者减慢程序的速度。也可能是编译器无论如何都会优化内存使用,所以这并不重要。 任何有关此的更多信息将不胜感激。

【问题讨论】:

  • “我不确定这个变量是否会导致更多的内存使用,或者减慢程序的速度。”它不会。

标签: python performance memory


【解决方案1】:

让代码更具可读性总是一个好主意,而且这不会影响任何性能。而且作为一种实践,您应该能够使您的代码向前和向后兼容,因此,如果您有对 tk.Label(self, text="This is a label.") 的引用,那么如果您将来对此标签对象有任何更改或添加任何其他功能,我相信您可以更有效地执行此操作,因为您已经有了对它的引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-08
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 2011-08-14
    • 1970-01-01
    相关资源
    最近更新 更多