python - 在不实例化任何对象的情况下使用实例方法可能是危险的还是有用的?

标签 python class oop memory-management instantiation

嗯,我最近开始学习 Python,但我发现,由于这门语言的工作原理,我可以做一些我不知道它会产生什么样后果的事情。

这是一个例子:

class crazyClass:
    def __init__(self):
        self.name = "Crazy Class"  # Irrelevant, just to have something

    def madnessUnleashed(self):
        print("WAJALAKAMAKACHAKA!")

# Now I want to use madnessUnleashed
# But I don't want to instantiate any object.

crazyClass.madnessUnleashed(crazyClass())  # Damn, I'm instantiating an object, but is it temporary or what?

我不确定这是否可以仅仅作为好奇,或者这是否有用,或者这是否会导致内存泄漏......

任何答案将不胜感激。谢谢!

最佳答案

它不会产生任何内存泄漏。从创建对象的行开始,事情按以下顺序发生:

  1. 创建了类 crazyClass 的新实例
  2. madnessUnleashed 被作为静态方法调用,因此 self 在这种情况下是之前创建的对象。
  3. python 的垃圾收集器检查对象是否仍被引用(不是)并将其从内存中删除

所以这里基本上没有什么特别的事情发生。 您可以在此处阅读有关垃圾收集器的更多信息:https://rushter.com/blog/python-garbage-collector/

关于python - 在不实例化任何对象的情况下使用实例方法可能是危险的还是有用的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57691275/

相关文章:

python - 在 Ubuntu 13.04 上编译 MySQL Workbench

python - GEKKO ANN 示例中的偏置节点

python - 从 Singleton 接收 pyqtSignal

c++ - 检查输入的有效性 - Setter 函数

c++ - 单独的类声明和方法定义文件问题

python - 通过切片索引和条件行设置值

class - 如何使用 Data.Function.Memoize 的类方法?

class - Enterprise Architect 类填充颜色

c++ - 指向类和函数的指针 - 问题

java -/r/dailyprogrammer#218-如何正确使对象正常工作?