从该实例的__init__方法中调用实例方法是不好的形式?

iva*_*van 7 python methods initialization

我正在构建一个具有属性的对象,该属性的值在实例化时随机生成.该属性将不时被赋予一个新值(也是随机的),所以我正在定义一个方法来执行此操作.通过从内部调用该方法初始化属性是不好的形式__init__?这很容易避免 - 我只需复制少量代码 - 但调用该方法似乎更优雅.这是一个例子:

import random

class Robot(object):
    def __init__(self):
        self.setDirection()

    def setDirection(self):
        self.direction = random.random() * 360
Run Code Online (Sandbox Code Playgroud)

eca*_*mur 10

可以在其中调用实例方法__init__,但要注意它们是否可以在子类中重写:

class A(object):

    def __init__(self):
        self.greet()

    def greet(self):
        print('Hello from A')


class B(A):

    def __init__(self, name):
        super(B, self).__init__()
        self.name = name

    def greet(self):
        print('Hello from B', self.name)
Run Code Online (Sandbox Code Playgroud)

现在,如果B被实例化,B.greetA.__init__在满足其前提条件(self.name未定义)之前调用它.