我正在尝试开发以下代码,用于使用面向对象编程练习Python:
class Pessoa:
def __init__(self, nome, sobrenome):
self._nome = nome
self._sobrenome = sobrenome
#getters
@property
def nome(self):
return self._nome
@property
def sobrenome(self):
return self._sobrenome
@nome.setter
def setNome(self, nome):
self._nome = nome
@sobrenome.setter
def sobrenome(self, sobrenome):
self._sobrenome = sobrenome
def getNomeCompleto(self):
return self._nome + " " + self._sobrenome
pessoa1 = Pessoa(None, None)
pessoa1.nome("Mário")
pessoa1.sobrenome("Lopes")
print(pessoa1.getNomeCompleto())
当我运行代码时,总是会出现与行“pessoa1.nome(“Mário”)”相关的错误:
TypeError: 'NoneType' object is not callable
我不知道怎么解决它。我试图调用的是nome的setter方法
您正在尝试将参数传递给对象字段。打电话给你的二传手
此时,您的代码试图调用类上的
nome
属性,该属性被初始化为None
,从而引发您看到的错误nome
的setter当前命名不正确-其名称应与属性(getter)的名称匹配:进行校正后,应使用以下方法设置特性值:
这将通过您定义的setter方法继续进行
全文:
输出:
相关问题 更多 >
编程相关推荐