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()
原文地址:https://www.cnblogs.com/lishuai0214/p/4283638.html