Python之面向对象编程学习
2017-01-04 22:12
316 查看
不知不觉,学到了python的面向对象编程思想。今天我们来讨论下面向对象编程的思想。
顾名思义,面向对象,就是面向于对象,这里所说的对象不是你现实生活中你的女朋友,你的老婆,你的爱人,在编程的世界里面,一切都是对象,万物皆是对象。
面向对象的主要的两个方面是类与对象。 在python中使用面向对象编程思想可以让我们节省很多时间,提高我们的效率,在python中创建一个类通常用class来表示。
让我们来一一去分析他们。
#coding:utf-8 print 'This is test' class lei: #创建一个新的类名,我们用class创建 def test(self): #这是方法 self的意思就是自身,相当于javascript里面的this一样。在这里是规定。 print 'this is test!' #同属于方法
shili=lei() #这是对象,也可以叫是为这个对象创建新的实例
shili.test()#对方法中函数的调用,直接调用就好了
简单的讲解了下含义,我感觉我注释部分讲解的很清楚了。大家认真看。
使用方法的特殊名字__init__,讲解他的特殊含义。
#coding:utf-8 class lei: def __init__(self,name): self.name=name #自身的名字=名字,一次赋值 def helloworld(self):#上面的做法传导给了下面的helloworld互相有关联 print 'helloworld is %s'%self.name #%s是元组打印语句的时候经常用到这里也可以使用。 shili=lei('jack_chen') #因为使用了特殊的方法名字所以我们可以直接在对象中调用 shili.helloworld() #直接调用hellowworld函数,看不懂可以多看几遍
复制我的代码自己实验一遍就可以了。
这里我就简单的介绍下__init__,除了__init__还有__del__这些,还有其他方法的特殊名字,并且有他们的特殊意义。
面向对象编程的编程之继承
面向对象编程给我们带来的好处就是代码的重用,实现这种重用的方法之一是通过继承机制来实现。
我是这样来理解继承的,继承就是把相同的属性丢给继承这个大的父类型,然后属于我的特殊属性丢给我的子类型,当我子类型需要公共的类型的时候,我们不需要一行行写属性那么麻烦,我们只需要调用继承就好了,然后我们就拥有了继承的属性,并且拥有自身的特殊属性,继承是公共的,所有人都能用,但是你需要去调用他。
通过一个实例去理解他:
#coding:utf-8 #继承的简单学习 #这里运用一个学校的例子,继承的总类型是name和age #特殊的部分是老师的salary(薪水)以及学生的marks(成绩) class schoolmember: def __init__(self,name,age): self.name=name #属于公共的方法 self.age=age #属于公共的方法 print 'My name is %s and my age %d'%(self.name,self.age) class teacher(schoolmember): #接收的类型为继承类 def __init__(self,name,age,salary): schoolmember.__init__(self,name,age) #1继承了父类的name和age,我们不需要在self.name=name,self.age=age,直接调用即可 self.salary=salary print 'the teacher salary %d and teacher name is %s'%(self.salary,self.name) class student(schoolmember): def __init__(self,name,age,marks): schoolmember.__init__(self,name,age) #与#1原理同上 self.marks=marks #特殊的方法 print 'student name:%s and age:%d and marks:%s'%(self.name,self.age,self.marks) t=teacher('jack',30,5000) #创建的t实例,因为是__init__所以直接调用 s=student('Lisa',12,80) #创建的s实例,因为是__init__所以直接调用
大家复制粘贴我的代码就懂了。还是把输出部分贴给大家吧,方便理解
My name is jack and my age 30 the teacher salary 5000 and teacher name is jack My name is Lisa and my age 12 student name:Lisa and age:12 and marks:80
大家看不懂多看几遍。教程到此结束,纯属原创。
相关文章推荐
- 利用python 实现简单 爬虫
- 决策树(Python实现)
- 如何手动释放Python的内存
- Python 之ConfigParser
- 每天一个python模块之Requests
- 百度语音REST接口使用(python)
- 关于Python的 求解答Bunch Pattern
- 第5章-2 DataFrame
- python中打开含中文的文件路径出错的情况
- Python virtualenv创建独立的python环境
- python 实用库
- Python基础:Python2与Python3除法的区别
- 最终版的Web(Python实现)
- windows下基于Python的定时服务程序
- python ftp上传
- [bigdata021- python3转换json数据的单引号双引号注意点]
- python中sklearn-learn模型持久化
- windows下安装tornado
- selenium学习笔记(二)
- python unittest测试框架介绍