python的数组表示()和[]的不同

在调试一个python程序,目的是根据配置自动生成一个菜单,菜单只有一项,如果这个配置打开,就要创建它,并把它加入到一个现成的菜单中,比如加入到“编辑”中。

本文说的问题,其实和这个菜单没啥关系,只是加这菜单时,我遇到了问题,代码逻辑如下的样子:

def addActions(self, wid, acts):
    for action in acts:
        if action is None:
            wid.addSeparator()
        else:
            wid.addMenu(action)

def AddMenuss(self):
    # mEdit 是一个 self.menuBar().addMenu("编辑")
    mnlist = (None, self.mDelP, self.mAddP)
    addActions(self.mEdit, mnlist)
    mnlist = (self.shortSwitch)
    self.addActions(self.mEdit, mnlist)

这里我们不说具体mDelP、mAddP、shortSwitch究竟是啥(实际上是一个菜单项^-^),我要探究的是mnlist。

最后两行我是仿照它前面的两行写的,很简单,就是把新的菜单项加入到mnlist之后,通过调用addActions()再把它们加入到mEdit菜单项中。

看上去两者除了数量不同之外,写法没有区别,但是在运行的时候,却挂在了最后一行 addActions()的:

for action in acts:

这一行上,多次尝试都是一样,我把mnlist也加了一项:

mnlist = (None,shortSwitch)

这次顺利通过,这样看,是数量不能为1!这有点奇怪呀,怎么可能数量至少是2呢?我再改改试试,因为之前用到列表都是用[]来表示的:

mnlist = [shortSwitch]

然后再运行程序,通过!

这样看来,应该坚持用[]来表示列表,以明确的标示来表示列表是好的习惯。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值