python 基本 class 问题,我哪里错了
python basic class question, where am i going wrong
我正在慢慢努力让自己的头脑清醒过来 类。我有一些我有点理解的工作示例,但是有人可以向我解释为什么这不起作用吗?
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
然后我得到输出 anaconda 但这不是我真正想要的。
如有任何帮助,我们将不胜感激。
此外...是否可以在代码生命周期的后期执行类似的操作?
def newstuff(self, value1, value2):
self.newvalue1 = value1
self.newvalue2 = value2
这样我就可以访问 2 个新“东西”abc.newvalue1
和 abc.newvalue2
。
这有意义吗?
对‘事情’感到抱歉;我仍在尝试掌握哪个是属性、对象、方法、项等...
abc.changename
是一种方法。要使用它,请将其与括号和值一起写入。
abc.changename('anaconda')
希望对你有帮助
您将 abc.changename
声明为函数。使用 abc.changename("Sandman112")
调用它
你所做的是将一个字符串分配给成员变量 abc.changename
而不是你定义的 class eariler 方法。
尝试更改此行:
abc.changename = 'anaconda'
对此:
abc.changename('anaconda')
您定义了方法 changename
来访问您的成员 name
。然后,在第一行中,您尝试不使用该方法直接访问该成员。
在第二种情况下,是的,它会起作用:
def newstuff(self, value1, value2):
self.name1 = value1
self.name2 = value2
但是您必须向 class 添加 1 个成员,然后应该像这样访问方法:
class python:
def __init__(self, value1, value2):
self.name1 = value1
self.name2 = value2
abc=python('python1', 'python2')
abc.newstuff('snake', 'anaconda')
我正在慢慢努力让自己的头脑清醒过来 类。我有一些我有点理解的工作示例,但是有人可以向我解释为什么这不起作用吗?
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
然后我得到输出 anaconda 但这不是我真正想要的。
如有任何帮助,我们将不胜感激。
此外...是否可以在代码生命周期的后期执行类似的操作?
def newstuff(self, value1, value2):
self.newvalue1 = value1
self.newvalue2 = value2
这样我就可以访问 2 个新“东西”abc.newvalue1
和 abc.newvalue2
。
这有意义吗?
对‘事情’感到抱歉;我仍在尝试掌握哪个是属性、对象、方法、项等...
abc.changename
是一种方法。要使用它,请将其与括号和值一起写入。
abc.changename('anaconda')
希望对你有帮助
您将 abc.changename
声明为函数。使用 abc.changename("Sandman112")
你所做的是将一个字符串分配给成员变量 abc.changename
而不是你定义的 class eariler 方法。
尝试更改此行:
abc.changename = 'anaconda'
对此:
abc.changename('anaconda')
您定义了方法 changename
来访问您的成员 name
。然后,在第一行中,您尝试不使用该方法直接访问该成员。
在第二种情况下,是的,它会起作用:
def newstuff(self, value1, value2):
self.name1 = value1
self.name2 = value2
但是您必须向 class 添加 1 个成员,然后应该像这样访问方法:
class python:
def __init__(self, value1, value2):
self.name1 = value1
self.name2 = value2
abc=python('python1', 'python2')
abc.newstuff('snake', 'anaconda')