[英]How to change Google Cloud instance type using Python update method
[英]How to change an instance variable in python using a method?
我对 python 很陌生,目前正在练习 OOP。 我面临的问题之一是如何使用方法更改 python 中的实例变量。 我的代码:
class Monster:
def __init__ (self, name, health):
self.name = name
self.health = health
@classmethod
def change_name (self, given_name):
self.name = given_name
mon = Monster("Drake", 100)
print(mon.name)
mon.change_name("Derrick")
print(mon.name)
输出:
#Expected:
Drake
Derrick
#Actual:
Drake
Drake
有人可以告诉我问题是什么以及我如何解决它?
这是因为change_name
方法被声明为classmethod
这意味着它的self
参数不是对象(类的实例)而是类,实际上您应该将其重命名为cls
以使其清楚。
通过类分配 tbe 变量会在类的命名空间中创建它,而不是在对象的命名空间中。
但是当通过对象查找时,python 在对象的命名空间中查找它,如果找不到,它会在类中查找它(如果还没有找到,则在超类中查找)
由于您似乎不需要它,因为 name 属性属于每个怪物实例,因此解决方案是通过删除@classmethod
装饰器使该方法成为一个普通实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.