python基本类问题,我要去哪里错了

问题描述 投票:1回答:3

我正在慢慢地尝试着上课。我有一些可以理解的工作示例,但是有人可以向我解释为什么这不起作用吗?

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.newvalue1abc.newvalue2

这有意义吗?

很抱歉!我仍在尝试掌握哪个是属性,对象,方法,项目等...

python class python-2.x
3个回答
1
投票

尝试更改此行:

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')

1
投票

abc.changename是一种方法。要使用它,请在括号中加上值并将其写入。abc.changename('anaconda')希望对您有帮助


1
投票

您已将abc.changename声明为函数。使用abc.changename("Sandman112")

调用

您所做的是为成员变量abc.changename分配了一个字符串,而不是您定义的Eariler的类方法。

© www.soinside.com 2019 - 2024. All rights reserved.