多个构造函数:Python方式?[重复]

多个构造函数:Python方式?[重复],第1张

多个构造函数:Python方式?[重复]

您不能在中使用多个具有相同名称的方法

Python
Java
不支持函数重载-与in不同。

使用默认参数或

**kwargs
*args
参数。

您可以使用

@staticmethod
@classmethod
装饰器制作静态方法或类方法,以返回类的实例,或添加其他构造函数。

我建议你这样做:

class F:    def __init__(self, timestamp=0, data=None, metadata=None):        self.timestamp = timestamp        self.data = list() if data is None else data        self.metadata = dict() if metadata is None else metadata    @classmethod    def from_file(cls, path):       _file = cls.get_file(path)       timestamp = _file.get_timestamp()       data = _file.get_data()       metadata = _file.get_metadata()   return cls(timestamp, data, metadata)    @classmethod    def from_metadata(cls, timestamp, data, metadata):        return cls(timestamp, data, metadata)    @staticmethod    def get_file(path):        # ...        pass

⚠永远不要将可变类型作为python中的默认值。⚠看这里。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5620409.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存