我试图计算那些不是的东西None
,但是我想要False
和数字零也被接受.反转逻辑:除了明确声明的内容外,我想计算所有内容None
.
只是第5个元素,它不包含在计数中:
>>> list = ['hey', 'what', 0, False, None, 14]
>>> print(magic_count(list))
5
Run Code Online (Sandbox Code Playgroud)
我知道这不是Python的正常行为,但我怎样才能覆盖Python的行为?
到目前为止,我建立的人建议a if a is not None else "too bad"
,但它不起作用.
我也试过了isinstance
,但没有运气.
我用谷歌搜索并播放了一段时间,但没有结果试图做这样的事情:
class A(object):
cl_att = 'I am an A class attribute'
class B(A):
cl_att += ' modified for B type'
class C(A):
cl_att += ' modified for C type'
instA = A()
print insAt.cl_att
>>> I am an A class attribute
instB = B()
print instB.cl_att
>>> I am an A class attribute modified for B type
instC = C()
print instC.cl_att
>>> I am an A class attribute modified for C type
print instA.cl_att
>>> I am an A …
Run Code Online (Sandbox Code Playgroud) 出于好奇,我正在使用__dict__
Python类的属性.
我在某处读到python中的"类"是一种字典,并且调用__dict__
类实例将实例转换为字典......我认为"很酷!我可以使用它!"
但这让我怀疑这些行为的正确性和安全性.
例如,如果我这样做:
class fooclass(object):
def __init__(self, arg):
self.arg1 = arg
p = fooclass('value1')
print(p.__dict__)
p.__dict__['arg2'] = 'value2'
print(p.__dict__)
print(p.arg2)
Run Code Online (Sandbox Code Playgroud)
我有这个:
>>>{'arg1': 'value1'}
>>>{'arg1': 'value1', 'arg2': 'value2'}
>>>value2
Run Code Online (Sandbox Code Playgroud)
那没关系,但是:
fooclass
还有1个属性?我怎么能确定?fooclass.__dict__['arg2'] = 'value2'
...为什么一个类和一个实例之间存在这种差异?