鱼C论坛

 找回密码
 立即注册
查看: 1789|回复: 5

高手来帮帮我呀,实例(start没赋值)化后调用isEmpty方法出错,啥原因

[复制链接]
发表于 2020-2-8 22:44:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
class Stack:
    def __init__(self,start=[]):
        self.a = []
        for i in start:
            self.push(i)

    def isEmpty(self):
        if len(self.a) == 0:
            print('空')
        else:
            print('非空')
        
    def push(self,b):
        self.a = self.a.append(b)

    def pop(self):
        if not self.a:
            print('警告,为空')
        else:
            return self.a.pop()

    def top(self):
        if not self.a:
            print('警告,为空')
        else:
            return self.a[-1]        

    def base(self):
        if not self.a:
            print('警告,为空')
        else:
            return self.a[0]

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-8 22:45:04 | 显示全部楼层

                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-9 01:32:41 | 显示全部楼层
本帖最后由 yexing 于 2020-2-9 10:50 编辑

试试这样:
  1. class Stack:
  2.     def __init__(self, *args): #注意在实例化类的时候就要传入参数
  3.         self.a = []
  4.         if args:
  5.             self.a = list(args[:])

  6.     def isEmpty(self):
  7.         if not self.a:
  8.             print("空")
  9.         else:
  10.             print("非空")

  11.     def push(self, *b):
  12.         self.a.append(b[0])

  13.     def pop(self):
  14.         if not self.a:
  15.             print("警告,为空")
  16.         else:
  17.             pop_obj = self.a[-1]
  18.             self.a = self.a[:-1]
  19.             return pop_obj

  20.     def top(self):
  21.         if not self.a:
  22.             print("警告,为空")
  23.         else:
  24.             return self.a[-1]

  25.     def base(self):
  26.         if not self.a:
  27.             print("警告,为空")
  28.         else:
  29.             return self.a[0]

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-9 14:46:09 | 显示全部楼层

是 a = Stack(),漏了对括号。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-11 21:26:37 | 显示全部楼层

类参数有初始化的值还必须要传值吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-11 21:40:11 | 显示全部楼层

找到原因了
self.a = self.a.append(b)
不能这样赋值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-22 06:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表