构造方法在python中的名称_python的构造方法

python的构造方法

构造方法与其他普通方法不同的地方在于,当一个对象被创建后,会立即调用构造方法。

在python中创建一个构造方法很简单,只需要把init方法的名字从简单的init修改为魔法版本__init__即可。

class foobar:

def __init__(self):

self.somevar = 42

f = foobar()

print(f.somevar) # 42

如果给构造方法传递几个参数的话,会怎么样呢?

class foobar:

def __init__(self,value =42):

self.somevar = value

f = foobar("this is a test")

print(f.somevar) # this is a test

重写一般方法和特殊的构造方法

每个类都可能有一个或者多个超类,它们从超类那里继承行为方式,如果一个方法在b类的一个实例中被调用,但在b类中没有找到该方法,那么就去它的超类a里面找

class a:

def hello(self):

print "hello,i'am a."

class b(a)

a类定义了一个叫做hello的方法,被b类继承,下面是一个说明类是如何工作的列子

>>>A = a()

>>>B = b()

>>>A.hello()hello,i'am a

>>>B.hello()

hello,i'am a

因为b类没有定义自己的hello方法,所以当hello被调用的时候,原始的信息就被打印出来。

在子类中增加功能的最基本的方法就是增加方法,但是也可以重写一些超类的方法来自定义继承的行为。b类也能重写这个方法,比如下面的列子中b类的定义被修改了。

class b(a):

def hello(self):

print "hello,i'am b."

重写是继承机制中的一个重要内容,对于构造方法尤其重要,构造方法用来初始化新创建的对象的状态,大多数子类不仅要拥有自己的初始化代码,还要拥有超类的初始化代码,虽然重写的机制对于所有方法来说都是一样的,但是当重写构造方法和普通重写方法更容易遇到特别的问题,比如,如果一个类的构造方法被重写,那么就需要调用超类的构造方法,否则,对象可能不会被正确的初始化。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值