我试图创建一个可以用互斥参数实例化的类。 例如,我们的课程要么获取完整的URL,要么逐段创建:
def url('protocol','hostname','uri','port', 'url')
但如果我们提供完整的“url”,则不需要“协议”、“主机名”、“uri”、“端口” 它可以通过可选参数完成,然后检查哪些参数不是空的,但实际上是蹩脚的:
def url('protocol'= None,'hostname' = None,'uri'= None,'port' = None, 'url'= None)
我也不认为它是
def url(*args)
因为我们必须创建一个解析器来查看传递的是什么
如何创建具有这样的互斥参数的方法
在类中执行此操作的一种方法是使用类方法从不同的参数集构造对象
用法:
使用这种模式,函数的目的总是明确的,传递的参数没有歧义,调用方也没有隐藏的排他性模式
相关问题 更多 >
编程相关推荐