python的self之个人理解


本文参考http://www.cnblogs.com/linuxcat/archive/2012/01/05/2220997.html

Python中的self一般用于类的方法中,当然一个独立的函数也可以加上self参数,但是如果没有需要岂不是在给自己找麻烦,因为调用的时候还要传进去一个空参数(我以前都是这样做的,惭愧)。

self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。当然self也可以换成其他的自己喜欢的词,除非你不想让别人读取懂自己的程序

#coding=utf-8
class Person:
    def __init__(self,name):
        self.name=name
    def sayhello(self):
        print 'Hello, my name is:',self.name
p=Person('Bill')
p.sayhello()

 

self指的是类实例对象本身而不是类本身。个人认为self的作用主要是标示公有成员变量的作用,我们知道,在C++中,可以用private或者public来定义类的一个属性,即类成员变量,这个变量可以被类中的所有方法使用。但是,python是一种动态语言,使用变量前不用定义或者声明,那么,如果我在类的一个方法定义了一个变量,这个变量就唯一的属于这个方法,如果其他方法想用这个变量呢?不好意思,不能使用。而使用self则可以解决这个问题,self会告诉所有的方法:这个变量是我们共有的,可以随便用哟

#coding=utf-8
class Person:
    def __init__(self,name):
        self.name=name
        mame1=name #name1只属于_init_方法,sayhello不能使用
    def sayhello(self):
        print 'Hello, my name is:',self.name
p=Person('Bill')
p.sayhello()

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM