设为首页 收藏本站
查看: 967|回复: 0

[经验分享] Python --013--面向对象

[复制链接]

尚未签到

发表于 2018-8-9 06:24:03 | 显示全部楼层 |阅读模式
  面向对象
  ·面向对象的思想
  

a=10  int 类型的对象  

  str='hehe'
  str()#出错不能够同时引用内置方法
  

  第一个面向对象的语言:SamlLTalk
  C语言(单纯面向过程的语言)-->c++加入面向对象的思想
  --->Java 面向对象的思想革命(纯面向对象的思想)
  Python :面向对象的思想
  

面向对象OOP:面向对象的编程object oritented programme  

  ·对象
  万物皆对象:一切客观存在的事物
  

1、有什么:属性  
2、能做什么:方法
  

  对象:属性+方法(电脑)
  对象的属性:
  对象的属性可能也是一个对象
  对象的方法:
  对象方法的使用者又是一个对象
  ·客观世界是由对象组成的
  1、小对象组成了大对象(小对象是大对象的属性)
  2、对象彼此之间方法调用
  ·如何建立解题思想
  

例:北京---->上海---->  
1、找对象(怎么去):
  
找到交通运输方式(高铁,汽车,飞机,小黄车)
  
2、找方法(怎么做):
  
调用交通工具(高铁)运输方法
  

  ·解决客观问题:
  

    1、把解决问题所需要的对象准备好  2、对象之间如何配合,完成需求
  

  面向过程:
  

北京-保定-石家庄-邯郸-郑州-杭州-上海虹桥  

  面向对象:
  

北京---上海虹桥  

  小结:
  

    1、面向过程的编程思想:要把每一步细化到十分精细,只考虑过程  2、面向对象的编程思想:只需要找到合适的对象,调用合适的方法,过程是次要考虑的
  

  客观世界由对象组成,处理问题要先找到对象,其次找到方法,对象之间需要彼此调用,
  小对象组成大对象。
  面向对象在计算机领域中的使用
  计算机需求,来源于客观世界:
  把客观世界的需求用计算机来实现
  

    淘宝、QQ、微信。  

  用计算机解决问题:同样用面向对象的思想解决,和我们的现实世界有高度统一
  (生活中如何解决这个问题,计算机就这么解决)
  ·计算机中的对象中
  在PVM虚拟机中的一块连续存储空间(数据)
  创建一个学生管理系统:
  

1、人工:建立档案(花名册)--记录学生的信息(管理的学生)  
2、计算机: 建立一个档案---记录学生的信息(管理学生的对象--一块连续的存储空间)
  

  学生:
  1、姓名:name=‘小明’
  2、班级:class=‘三年二班’
  3、性别:sex=‘男’
  4、年龄:age=‘10’
  ·小结
  面向对象的思想,为解决生活中的问题提供了解决思路,应对复杂的需求
  如何做更加合理,越接近现实生活,越合理
  

1、各司其职,对象应该保持简单性  
2、弱耦合性,对象与对象之间的关系,联系尽量弱化
  
3、可重复性,创建的对象如果下一次拿过来可以直接使用print()
  
4、可扩展性,在原有功能基础之上增加新的功能
  

  OOP
  面向对象的编程 object oriented programing
  

    1、面向对象的语法正确  2、拥有面向对象的思想
  

  类
  1、类是对象共性的抽象
  2、类是客观对象在人脑中的主观反应,人对对象的一种认识
  3、类是对象的模板(通过类取创建对象)
  ·如何编写一个类
  先定义属性,方法
  

关键字:class  
class类名:
  
属性:变量 类变量(全局变量)
  
方法:函数
  
class Student:
  
name=None
  
squad=None
  
sex=None
  
age=None
  

  
def learn(self):
  print ('Student should learn hard')
  
def doHomeWork(self):
  print ('Student should do homework')
  
s=Student()
  
s.name='Tome'
  
s.age='10'
  
s.squad='class 3 grade 4'
  
s.sex='male'
  
s.learn()#Student should learn hard
  
s.doHomeWork()#Student should do homework
  
print s.name#Tome
  
print s.age#10
  
print s.squad#class 3 grade 4
  
print s.sex#male
  

  ·方法
  1、方法的声明(能做什么):
  2、方法的实现()
  def 方法名(self,[其他参数]):
  3、self
  

   >name=None  squad=None
  sex=None
  age=None
  def doHomeWork(self):
  print ('Student should do homework')
  def jiSuan(self,a,b):
  return a+b
  

  s2=Student()
  s2.doHomeWork()#Student should do homework
  s2.jiSuan(1,2)#3
  

  1、在调用时候自动传递,不需要人为处理
  
指代当前对象
  

  2、self.属性 用来区分类变量和局部变量
  

  3、方法只能在创建对象后使用
  

  1、init(self):  前面两个下划线后面两个下划线
  

class Student:  name=None
  squad=None
  sex=None
  def __init__(self):
  print 'this is constructor fuction'
  
s=Student()#this is constructor fuction  显示错误
  

  
在创建对象的时候自动调用,不需要手工调用
  
创建对象也称为实例化对象,创建出来的对象也称为实例
  

  
2、__init__(self,param1,param2):
  class Student:
  name=None
  squad=None
  sex=None
  def __init__(self,a,b):
  print  '%d +%d=%d'%(a,b,a+b)
  s=Student(3,4)#3 +4=7这样才贵
  

  构造方法
  构造方法中也可以有参数,和普通方法有很多的类似之处
  

3、如果一个类中没有写任何构造方法,则就会默认调用父类的构造方法  
4、类中可以定义多个构造方法,但是只会以最后一个构造方法为标准。
  
(前面的构造方法被后面的覆盖了)
  

  class Student:
  def __init__(self,name,squad,sex,age):
  self.name=name
  self.squad=squad
  self.sex=sex
  self.age=age
  s=Student('Thomas','Class3 Grade5','male','16')
  print s.name#Thomas
  print s.age#16
  print s.squad#Class3 Grade5
  
5、构造方法在开发中常常来给属性赋值
  
6、构造方法可以有return语句,但是只能返回None
  

  
7、构造方法还可以在return语句后调用方法(构造方法,普通方法)
  

  class Student:
  def learn(self):
  print ('Student should learn hard')
  def __init__(self,name,squad,sex,age):
  self.name=name
  self.squad=squad
  self.sex=sex
  self.age=age
  return self.learn()
  

  s=Student('hehe','heh','hehe','hehe')#Student should learn hard

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-548790-1-1.html 上篇帖子: Python-selenium基础操作 下篇帖子: python操作Excel-11555901
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表