gpt4 book ai didi

Python对象绑定(bind)方法

转载 作者:太空宇宙 更新时间:2023-11-04 07:37:00 24 4
gpt4 key购买 nike

我做了这个堆栈程序:

class Stack(object):
def __init__(self):
self.items = []

def empty(self):
return self.items == []

def push(self, item):
return self.items.append(item)
def pop(self):
return self.items.pop()

def Items(self):
print self.items

当我尝试 stack.empty它说<bound method Stack.empty of <__main__.Stack object at 0x01C437B0>> .我不知道我做错了什么。

最佳答案

您只是忘记了调用方法:

stack.empty()

如果您必须让它作为属性使用,请使用 property object :

@property
def empty(self):
return self.items == []

你可以在这里使用 not,空容器在 bool 上下文中被认为是 false,如果容器 not self.items 产生 True是空的:

@property
def empty(self):
return not self.items

Demo(没有属性来演示方法):

>>> class Stack(object):
... def __init__(self):
... self.items = []
... def empty(self):
... return not self.items
... def push(self, item):
... return self.items.append(item)
... def pop(self):
... return self.items.pop()
...
>>> stack = Stack()
>>> stack.empty
<bound method Stack.empty of <__main__.Stack object at 0x10211c090>>
>>> stack.empty()
True
>>> stack.push('foo')
>>> stack.empty()
False
>>> stack.pop()
'foo'
>>> stack.empty()
True

关于Python对象绑定(bind)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32371062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com