python中的重对象初始化

时间:2016-12-14 09:50:03

标签: python design-patterns constructor

当我需要初始化包含大数组的对象时,Python中的优秀做法是什么,并且在对象创建期间应该用计算值填充它。在Python中是否可以在构造函数中执行此操作,或者这就像代码气味,我应该使用Factory代替?什么是Pythonic方式?

1 个答案:

答案 0 :(得分:1)

如果你可以用几行清晰代码初始化数组,那么可以直接在__init__方法中初始化它。否则,请使用单独的方法初始化它。

Python确实有静态方法和类方法(有关简单示例,请参阅here)。你可以使用静态方法来初始化你的数组,但是如果初始化方法在计算中使用了实例的属性,你也可以将它作为常规方法,否则你需要将它们传递给那些值作为参数。

Python没有私有方法,但通常通过为一个名称以单个前导下划线开头的方式(例如_init_my_array)来指示方法是私有地使用该类。如果你班级的用户想要调用那种方法,但是他们知道这样做可能会导致课堂行为不端,除非你知道你在做什么,否则调用这种“私人”方法通常不是一个好主意。