python里如何真正判断对象不是一个空值

看了网上一些方法自己也尝试了一些方法,发现网上的方法或多或少会有一些漏洞。
比如
if a!="":
print("a is not empty")
这种是最不靠谱的,因为空集合空字典都判断不了
又尝试了
if not a:
print("a is not empty")
这种也不行,因为如果a=0它会认为a是空值
再把两种组合一下
if not a and a!=0:
print("a is not empty")
发现仍然有问题,如果a="" 它判断不了
最后我把三种情况组合在一起
if not a and a!=0 and a!="":
print("a is not empty")
这时尝试给a赋值,在我能想到的范围内都是可行的。但不知道还有没有什么漏洞?

list,dict,tuple,这三个如果是空值的话,还是继续print

不明白你到底想干什么
如果只是想知道它是不是none,那就直接去和none比较,不要去和乱七八糟的什么0什么空字符串去比较
而且Python虽然是弱类型,它毕竟是有类型的,不同类型的数据要判断是不是有一个正常的数据,你就是应该用不同的办法去判断,而不是强行使用同一套

if a is None:

判空

if bool(a):
  print("不是空值")