我正在慢慢地尝试着上课。我有一些可以理解的工作示例,但是有人可以向我解释为什么这不起作用吗?
class python:
def __init__(self,name):
self.name=name
def changename(self,newname):
self.name=newname
abc=python('python')
print abc.name
abc.changename = 'anaconda'
print abc.name
[我想在这里做的就是稍后在代码中更改abc.name
的值(如果这是一个特殊的单词,则不必是name,但我确实尝试过name2等),结果相同...)
如果执行print abc.changename
,则得到输出蟒蛇,但这并不是我真正想要的。
任何帮助将不胜感激。
还...是否有可能在代码生命周期的稍后阶段做类似的事情?
def newstuff(self, value1, value2):
self.newvalue1 = value1
self.newvalue2 = value2
这样我就可以使用2个新的“事物” abc.newvalue1
和abc.newvalue2
。
这有意义吗?
很抱歉!我仍在尝试掌握哪个是属性,对象,方法,项目等...
尝试更改此行:
abc.changename = 'anaconda'
对此:
abc.changename('anaconda')
您定义了访问成员changename
的方法name
。然后,在第一行中尝试不使用该方法直接访问成员。
在第二种情况下,它将起作用:
def newstuff(self, value1, value2):
self.name1 = value1
self.name2 = value2
但是您必须在类中添加1个成员,然后应按以下方式访问方法:
class python:
def __init__(self, value1, value2):
self.name1 = value1
self.name2 = value2
abc=python('python1', 'python2')
abc.newstuff('snake', 'anaconda')
abc.changename
是一种方法。要使用它,请在括号中加上值并将其写入。abc.changename('anaconda')
希望对您有帮助
您已将abc.changename
声明为函数。使用abc.changename("Sandman112")
您所做的是为成员变量abc.changename
分配了一个字符串,而不是您定义的Eariler的类方法。