Python中__init__的方法解惑

           本人最近开始学习Python,在使用Python写自己定义的类时,发现好多纠结的问题,一直习惯使用C++来写代码,换成Python还有一点不太习惯。

           __init__类似的方法有一点特殊,所有的名字的开头和结尾都有两个下滑线,这些方法都是特殊的方法。当有一个类的实例被创建时,__init__()方法会自动执行,在类实例创建完毕后执行,类似构造函数。__init__()可以被当成构造函数,他并不创建实例--它仅仅是你的对象创建后执行的第一个方法。它的目的是执行一些对象的必要的初始化工作。通过创建自己的__init__()方法,你可以覆盖默认的__init__()方法(默认的方法什么也不做),从而能够修饰刚刚创建的对象。

          什么是self ?它是类实例自身的引用,其他语言通常使用一个名为this的表示符,在self中自己可以任意添加任意类型的数据成员。self在Python里不是关键字。self代表当前对象的地址。self能避免非限定调用造成的全局变量。


        我们完全可以把__init__()方法比成类的构造函数,将self看成是类中的this指针,时刻作为类的指针,指向这个类的起始地址。


#encoding:utf-8

'''
Created on 2013-7-23

@author: Administrator
'''

class Person:
    def __init__(self):
        #print 'this is self id = %,in __init__' % (id(self));
        print "Hello in Constructor"
        
    def ShowSomething(self):
        print 'this is self id = %d' % (id(self))
        
if __name__ == '__main__':
    pass
else:
    print 'Hello Python in Main Function!'
    
    p = Person()
    print "The object address is %d" % id(p)
    p.ShowSomething()

看一下运行结果:

Finding files... done.
Importing test modules ... Hello Python in Main Function!
Hello in Constructor
The object address is 41428792
this is self id = 41428792
done.

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值