为什么我的函数在类被调用时在 __init__() 类的字典中被调用?

问题描述

我正在尝试制作一个文本冒险游戏,并且我在类 init 中定义了一个字典,在该类中,稍后在类中引用了一个函数。我希望程序在我使用字典键调用函数时执行该函数,但在调用类时它会自动执行。

这是我的最小可重现错误

class myClass:

  def __init__(self):

    self.my_dictionary = {
      "key": myClass.my_function()
    }
  
  def my_function():
    print("here")

myClass() 

打印:here 当我不希望打印任何内容时。

我希望发生的事情是这样的:

class myClass:

  def __init__(self,input):

    self.input = input

    self.my_dictionary = {
      "key": myClass.my_function(),"ooo": 0
    }

    self.my_dictionary[self.input] # if the input is "key" then this should activate myClass.my_function()
  
  def my_function():
    print("here")

myClass("key") # SHOULD activate myClass.my_function()
myClass("ooo") # should NOT activate myClass.my_function()

但这会打印 here \n here

我在我的另一个项目中进行了测试,发现该函数在放入字典时被调用,即在上一个示例的第 7-8 行。

我不知道为什么会发生这种情况,如果没有办法解决它,我如何才能达到类似的效果(我的目的是将不同的键输入到字典中,然后具有相应的功能执行)。

感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...