Skip to main content
 首页 » 编程设计

Python对象绑定(bind)方法

2025年05月04日14soundcode

我做了这个堆栈程序:

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