【发布时间】:2016-10-07 04:17:39
【问题描述】:
我有一个类,并试图在类中的一个函数内创建一个函数。我的代码是这样的:
class example:
def __init__(self):
self.points = 0
def operations(self):
def add(self):
self.points += 1
def subtract(self):
self.points -= 1
def display(self):
print(self.points)
obj = example()
obj.display()
obj.operations.add()
我得到输出0然后得到错误:
obj.operations.add()
AttributeError: 'function' object has no attribute 'add'
我尝试了许多其他方法来解决这个问题,但都没有奏效。 如果您知道如何解决此错误,请回答。
-谢谢
【问题讨论】:
-
你到底想做什么?您可以在函数内部定义函数,但通过
function1.function2将无法使用它们。特别是只要您不执行该功能,它们甚至都不存在(如果您之后不“保存”这些功能,它们将不复存在)。 -
函数内部的函数是locals,就像函数中的任何其他变量一样。它们仅在函数调用期间存在,而不是在该调用之外。您是否出于某种原因想要命名这些函数?
-
@MartijnPieters 我之所以在A函数里面有一个函数是因为在我的实际程序中,我有很多程序,我是一个喜欢保持整洁的人。
-
@Nic:这并没有让它更整洁。例如,偏离常规做法会使您的代码更难维护。无论如何,函数不能用于创建额外的命名空间。
-
除了
operations,你还要在那个对象上实现什么?
标签: python function class python-3.x