我毫不犹豫地提出这个问题,但我的头脑似乎无法绕过class
,__init__()
和str
的使用。希望有人能够耐心地回答这可能是一个非常愚蠢的问题。
我写了以下内容来测试我的理解(= 0)"
class Test():
def __init__(self,var1,var2):
self.__var1 = var1
self.__var2 = var2
def change_var1(self):
self.__var1
self.__var1 =2*self.__var1
return self.__var1, self.__var2
def change_var2(self):
self.__var2
self.__var2 = self.__var2*2
return self.__var1, self.__var2
def __repr__(self):
return "var1 is {}, and var 2 = {}".format(self.__var1, self.__var2)
t = Test(4,"Bye")
print(t.change_var1 )
print(t.change_var2)
我无法通过后续函数更改 init 中声明的变量。我假设我已经错误地使用了类 init ,str__。 运行我上面的内容的反应是:
<bound method Test.change_var1 of var1 is 4, and var 2 = Bye>
<bound method Test.change_var2 of var1 is 4, and var 2 = Bye>
感谢任何帮助,推送到一个能够穿过我心中的砖墙的网站!!
答案 0 :(得分:0)
当您执行print(t.change_var1)
时,您正在调用 change_var1 function
,您只是引用它。它没有被调用,所以它实际上没有做任何事情。
要调用它,您需要附加括号:
print(t.change_var1())
print(t.change_var2())
答案 1 :(得分:0)
我猜这个问题是&#34;我做错了什么?&#34;。您的概念是正确的,但我认为Python syntax的评论是有序的。
如果您查看那里的两个示例,您会看到一个 使用括号调用 名为fib
的函数,例如>>>fib(1000)
,但只需输入>>>fib
即可引用该功能。尝试删除最后两行周围的print()
,您将获得相同的结果。添加括号,你就会变成金色。