python - 重写类方法以检查是否为空

标签 python

我想表示可以是 None、列表或字典的对象,因此我为此创建一个类,例如

class C(object):
    def __init__(self,c):
         self.content = c

现在我可以重写什么__method__来检查C对象o是否为None或空,以便我可以做一些事情,例如if o:做某事,例如,

c1 = C(None)
c2 = C([])
c3 = C([1])
'1'if c1 else '0'
'1'  #I want this to be '0'
sage: '1'if c2 else '0'
'1'  # I want this to be '0'
sage: '1'if c3 else '0'

最佳答案

尝试定义__nonzero__

class C(object):
    def __init__(self,c):
         self.content = c
    def __nonzero__(self):
        return bool(self.content)

c1 = C(None)
c2 = C([])
c3 = C([1])
print 1 if c1 else 0 #result: 0
print 1 if c2 else 0 #result: 0
print 1 if c3 else 0 #result: 1

关于python - 重写类方法以检查是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30485152/

相关文章:

python - 是否可以将 for 循环中的值放入列表中?

python - 如何使用 np.fromregex 很好地读取数据?

python - Selenium ( python ): Errno 101 Connection Refused on screenshot?

javascript - 从抓取的 Javascript 表列表创建 DataFrame

python按相同键值计数对字典列表进行排序

python - gzip 文件上的 readline 会导致无限循环 [python]

python - 将 Access 查询转换为 Python 脚本

python - 如何检查列表中元素的索引? (Python)

python - 在数据库中的整数列中使用 Nan 将数据写入数据库

python - python中变量变化的回调