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