python中用来占位_自定义占位符,如python中的None
我在一個函數(shù)中使用
argspec,它接受另一個函數(shù)或方法作為參數(shù),并返回一個這樣的元組:
(("arg1", obj1), ("arg2", obj2), ...)
這意味著傳遞函數(shù)的第一個參數(shù)是arg1,它的默認值為obj1,依此類推.
這是一個問題:如果它沒有默認值,我需要一個占位符值來表示這一點.我不能使用None,因為那時我無法區(qū)分無默認值和默認值是None.對于False,0,-1等也是如此.我可以使它成為一個單元素的元組,但是然后用于檢查它的代碼將是丑陋的,我不能輕易將它變成一個字典.所以我想我會創(chuàng)建一個非類似的非對象,這就是我想出來的:
class MetaNoDefault(type):
def __repr__(cls):
return cls.__name__
__str__ = __repr__
class NoDefault(object):
__metaclass__ = MetaNoDefault
現(xiàn)在(“arg1”,NoDefault)表示arg1沒有默認值,我可以做一些事情,比如obj1是NoDefault:等等.元類使它打印為NoDefault而不是< class'__ ___ _.NoDefault'>.
有沒有理由不這樣做?有更好的解決方案嗎?
總結(jié)
以上是生活随笔為你收集整理的python中用来占位_自定义占位符,如python中的None的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python异常捕获_Python-异常
- 下一篇: junit 内部类测试_Springbo