Chinaunix首页 | 论坛 | 博客
  • 博客访问: 237193
  • 博文数量: 52
  • 博客积分: 1492
  • 博客等级: 上尉
  • 技术积分: 554
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-09 15:54
文章分类
文章存档

2010年(52)

我的朋友

分类: Python/Ruby

2010-07-17 17:19:41

 
 
由于之前没有程序基础,所以对面向对象不是很理解,今天学习到类的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来区分;而函数是在任何时候都可以引用,没有类的界限。
阅读(3825) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~