tl; dr:我想知道如何将可选参数的类型设置为自定义构建的类,即;
代码:
class Point(object):
def __init__(self,x=int,y=int): # Initialize Point object with optional args
self.val=(x,y)
def __add__(self,p=Point): # p=Point is the issue
...
我试过了:
def __add__(self,p=self.__class__): # Cannot reference self in an arg.
def __add__(self,p=Point): # Point is not defined
很长的故事:
到目前为止,我已经进行了几次搜索,但我认为它更多的是我使用的术语。
我正在构建一个 2d Point/Vector 类(我知道,已经完成了,但我正在学习并发展我的写作风格。),并且在大多数情况下,我已经厌恶使用无类型的位置参数,主要用于易于维护。
我无法弄清楚如何将可选 arg 的类型设置为自定义构建的类,例如上面的 Point,而不是 python 的内置类型之一。
注意:我知道简单地制作 pa 位置 arg 会起作用,而且确实如此,但只要没有主要原因不这样做,除了它对 python 的哲学来说有点僵化,我想键入 args 以使代码清晰。
怎样才能做到这一点,是否值得,以这种方式做事有什么缺点吗?
也非常欢迎任何有关此类事情的最佳实践的提示。