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.greet则A.__init__在满足其前提条件(self.name未定义)之前调用它.
| 归档时间: |
|
| 查看次数: |
4235 次 |
| 最近记录: |