关于python中self的理解
时间:2010-07-17 来源:lane0012
由于之前没有程序基础,所以对面向对象不是很理解,今天学习到类的self一些概念时模糊不清,于是在网上查找,看到一个较为形象的解释:
-------------------------------------------------------------------------------------------------------------
sample:
class Person:
def _init_(self,name):
self.name=name
def sayhello(self):
print 'My name is:',self.name
p=Person('tianya')
print p
self可以这么理解
class就是表示“汽车”
然后__init__是一些汽车的基本定义,比如要有发动机,要有方向盘
在这个定义的过程中,可能需要一种引用,比如现在北京要求汽车都要装自检测系统,监测系统统计数据必定是某一辆车它自身的,是一个“实例”邦定的行为,你的检测功能不会也不允许去收集其他汽车的数据
class 汽车:
自检测(这辆车,x,y......):
这辆车.get发动机转数();
这辆车.get里程表();
......
这里self就特指这辆车它本身,__init__可以理解为自检测。 类/对象可以拥有像函数一样的方法,这些方法与函数的区别只是一个额外的self变量。 个人理解:为什么说方法与函数的区别是一个额外的self变量呢?可能是因为每个类的实例/对象的方法只能在它自己的实例/对象的范围里面起作用,故要加self来区分;而函数是在任何时候都可以引用,没有类的界限。
class Person:
def _init_(self,name):
self.name=name
def sayhello(self):
print 'My name is:',self.name
p=Person('tianya')
print p
self可以这么理解
class就是表示“汽车”
然后__init__是一些汽车的基本定义,比如要有发动机,要有方向盘
在这个定义的过程中,可能需要一种引用,比如现在北京要求汽车都要装自检测系统,监测系统统计数据必定是某一辆车它自身的,是一个“实例”邦定的行为,你的检测功能不会也不允许去收集其他汽车的数据
class 汽车:
自检测(这辆车,x,y......):
这辆车.get发动机转数();
这辆车.get里程表();
......
这里self就特指这辆车它本身,__init__可以理解为自检测。 类/对象可以拥有像函数一样的方法,这些方法与函数的区别只是一个额外的self变量。 个人理解:为什么说方法与函数的区别是一个额外的self变量呢?可能是因为每个类的实例/对象的方法只能在它自己的实例/对象的范围里面起作用,故要加self来区分;而函数是在任何时候都可以引用,没有类的界限。
相关阅读 更多 +