1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python中用来占位_自定义占位符 如python中的None

python中用来占位_自定义占位符 如python中的None

时间:2023-07-26 01:45:03

相关推荐

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'>.

有没有理由不这样做?有更好的解决方案吗?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。