范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Python其实很简单第十三章通俗说说面向对象

  最早的程序设计方法是面向过程的程序设计,这里的"过程",其实就是流程。世间有万事,万事各不同,所谓不同,就是流程不同。既然你的程序是针对某个具体的问题,处理的方法和流程当然不同,这样说来,你所精心设计的程序,往往只能解决具体问题,而不具备普遍性和可变性。
  面向对象程序设计(Object Oriented Programming,OOP),它是一种程序设计思想,其本质是通过抽象方法建立模型,再将模型具体化的方法。
  举一个例子。汽车是一个非常宽泛的概念,大大小小,不同颜色,形态各异的汽车,都属于"汽车"这个类,颜色、轮胎数量、车门个数等属性都是"汽车"类的属性,启动、前进、加速、倒车、刹车等都是"汽车"类的动作(这里的"动作"被称为方法),这些属性和方法既可以指定为具体值,也可以仅仅列出而不赋值。我们也可以定义"汽车"类的一个子类,譬如"红色小轿车",而一辆具体的车,假如"车号为88888的"汽车是"红色小轿车"类的一个实例,该汽车便是一个"对象",该对象除了已经继承了"红色小轿车"类的颜色属性,其他的属性和方法还是继承了父类"汽车"的属性和方法。
  综上,面向对象程序设计以对象为核心,该方法认为程序由一系列对象组成。类是对现实世界的抽象,包括表示静态属性的数据和对数据的操作,对象是类的实例化。对象间通过消息传递相互通信,来模拟现实世界中不同实体间的联系。在面向对象的程序设计中,对象是组成程序的基本模块。
  面向对象程序设计具有三大基本特征:封装、继承和多态。
  下面简要的介绍一下上述提到的名词:
  1、对象(Object)
  这是一个抽象的概念,"世间万物皆对象",任何事情和物品都可以用对象来描述。譬如说,在设计学生信息处理程序时,可以将"王小明同学"看成一个研究对象,他有静态属性和动态属性。静态属性有姓名、性别、出生年月(静态属性一般简称为属性)等,动态属性有动作、行为(动态属性一般被称为方法)等。
  2、类(class)
  一个共享相同结构和行为的对象的集合。类(Class)定义了一类事物(对象)的抽象特点。通常来说,类定义了每个对象共有的属性和方法。举例来说,"学生"这个类会包含了所有学生的一切基础特征,例如籍贯、性别、专业和预约考试、查询成绩。"王小明同学"就是"学生类"的一个实例,是"学生类"的具体化,当然也就继承了"学生类"的全部属性和方法,如他一定有"籍贯、性别、专业"三个属性和"预约考试、查询成绩"两个方法。
  3、封装(encapsulation)
  封装就是对用户隐藏实现细节。如我们使用手机通话时,关心的是通话的内容,而不需要了解无线电波是如何传播的。此时的手机就是一个黑盒子,我们无须知道其工作原理。
  面向对象程序设计中的"封装",有两层含义:其一是将数据和操作捆绑在一起,创造出一个新的类型的过程;其二是将接口与实现分离的过程。
  采用封装思想可以保证类内部数据结构的完整性,使用该类时,用户看不到类中的数据结构,只能通过设计者提供的方法来访问即可,从而提高了程序的可维护性。
  4、继承
  在日常生活中,继承这个概念适合于长辈与晚辈之间。对于类,也可以分为父类和子类。对象可以继承它从属的类的属性和方法,子类也可以继承父类的属性和方法,
  5、多态
  有一句俗语说"一龙生九子,九子各不同"。虽然各个子类都继承了父类,但继承的都是共有的属性和方法,而各个子类都有属于自身特有的属性和方法,比如不同专业的学生的课程会不同。
  下面举一个例子说明消息传递方面的的多态:比如教师和学生都是用户,都是通过鼠标点击同一个按钮(譬如查看成绩),但进入的界面就不一样,教师看到的是全班所有学生的成绩,而学生看到的只有本人成绩。
  6、消息传递
  指的是一个对象调用了另一个对象的方法(或者称为成员函数)。
  7、方法
  也称为成员函数,是指对象上的操作,作为类声明的一部分来定义。方法定义了可以对一个对象执行那些操作。
  下面重点介绍类的概念及其应用
  1、定义类
  具有相同的属性和方法的对象所构成的集合就是类。
  语法:
  class ClassName:
  statement
  其中,ClassName是类名,一般使用大写字母开头,如果类名中包括两个单词,应当采用"驼峰式命名法",即每个单词的首字母大写,其余字母小写。statement表示类体,包含类变量(或类成员)、方法和属性等定义语句,如果没有类体可以描述,就用pass语句代替。如:class Student:
  pass
  这个"空"的类,你可以将其想象为一个"占位符",虽然它没有实质性的意义,但在以后的编程过程中你可以根据需求去"扩充"它,让它"饱满"。
  下面举例说明一个完整的类的语法结构,如:
  class Student:
  def __init__(self,name,tel):
  self.name=name
  self.tel=tel
  def print_tel(self):
  print("%s: %s" % (self.name,self.tel))
  这里定义了一个类,类名为Student。__init__( )是一个特殊方法("__"是两个连续的"_"号),类似于Java中的构造方法,每当创建一个类的实例,Python就会自动执行它。其中必须包含参数self,它指向类本身,在实例化时则指向实例本身。上面的Student类的__init__( )方法还有两个参数name和tel,实例化时将被具体的实例变量所代替。print_tel( )方法访问的类本身的数据,在实例化时也是调用了实例变量。
  2、类实例化
  类的实例化相当于将类具体化,赋予一组具体的值。和函数调用相似,但又比函数调用复杂。因为类既包含数据,又包含操作数据的方法。
  如:
  tom=Student("Tom","8888888")
  jim=Student("Jim","7777777")
  tom.print_tel()
  jim.print_tel()
  运行结果:
  Tom: 8888888
  Jim: 7777777
  可以看出,创建实例是通过类名和( )实现的,实例参数要和类属性对应,如’Tom’和类属性name对应,‘8888888’和类属性tel对应。
  tom是Student类的一个实例,它也就能调用类的方法,如tom.print_tel()。如在上面的例子中,添加下面的语句:
  tom.name="Bauml R.W"
  tom.print_tel()
  运行结果:
  Tom: 8888888
  Jim: 7777777
  Bauml R.W: 8888888
  可见,语句tom.name="Bauml R.W"使实例tom的属性name的值发生了改变。
  3、私有属性与私有方法
  类可以有公有属性与公有方法,也可以有私有属性与私有方法,公有部分的对象可以从外部访问,而私有部分的对象只有在类的内部才可访问。定义私有属性(或方法)时要在的属性名(或方法名)的前面加上两个连续的"_"号。
  现在通过下例介绍私有属性与私有方法的用法:
  class PubAndPri:
  pub=10 # 此为公有属性
  __pri=20 # 此为私有属性
  x=PubAndPri() # x为类PubAndPri的实例
  print("public var:",x.pub) # 通过实例名访问公有属性
  print("private var:",x.__pri) # 通过实例名访问私有属性
  运行结果:
  public var: 10
  Traceback (most recent call last):
  File "C:/Users/Administrator/AppData/Local/Programs/Python/Python38/2.py", line 11, in
  print("private var:",x.__pri)
  AttributeError: "PubAndPri" object has no attribute "__pri"
  可见,通过实例名访问私有属性时就会报错。
  为了访问私有属性,只能在类中增加一访问私有属性的方法。将上例中的程序修改如下:
  class PubAndPri:
  pub=10
  __pri=20
  def __init(self):
  print("private var:",__pri) # 在方法中访问私有属性
  x=PubAndPri()
  print("public var:",x.pub)
  print("private var:",x._PubAndPri__pri)
  # f访问私有属性,格式:实例名._类名__私有属性名(第一个_为一个_,第二个为两个_)
  运行结果:
  public var: 10
  private var: 20
  由上可以看出,私有属性可以通过"实例名._类名__私有属性名"的方式访问,但在构造方法中要有相关的访问语句。
  4、继承与多态
  子类可以继承父类的所有公共成员。父类也称基类,子类也称派生类。声明父类的方法是在类名后面的括号中列出。若不声明父类,默认的父类是object。
  下面通过一个实例来介绍继承与多态:
  程序1:子类完全继承父类
  class Person(object): # 定义了一个类Person
  def __init__(self,name,sex): # 类Person有两个属性name和sex
  self.name = name
  self.sex = sex
  def print_info(self): # 定义了Person类的方法
  if self.sex == "male":
  print(self.name+" is man")
  elif self.sex == "female":
  print(self.name+" is woman")
  class Child(Person): # 定义了一个子类Child,父类为Person
  pass
  King = Child("King","male") # 创建子类Child的实例
  Mary = Person("Mary","female") # 创建父类Person的实例
  print(King.name+" is "+King.sex," ",Mary.name+" is "+Mary.sex)
  King.print_info() # 调用子类Child的print_info方法
  Mary.print_info() # 调用父类Person的print_info方法
  运行结果:
  King is male Mary is female
  King is man
  Mary is woman
  程序2:子类重写父类的方法
  class Person(object): # 定义了一个类Person
  def __init__(self,name,sex): # 类Person有两个属性name和sex
  self.name = name
  self.sex = sex
  def print_info(self): # 定义了Person类的方法
  if self.sex == "male":
  print(self.name+" is man")
  elif self.sex == "female":
  print(self.name+" is woman")
  class Child(Person): # 定义了一个子类Child,父类为Person
  def print_info(self): # "重写"方法print_info()
  if self.sex == "male":
  print(self.name+" is boy")
  elif self.sex == "female":
  print(self.name+" is girl")
  King = Child("King","male") #子类实例化
  Mary = Person("Mary","female") #父类实例化
  print(King.name+" is "+King.sex," ",Mary.name+" is "+Mary.sex)
  King.print_info()
  Mary.print_info()
  输出结果:
  King is male Mary is female
  King is boy
  Mary is woman
  对比程序1和程序2的运行结果可知,程序1中的子类完全继承了父类的属性和方法,程序2中的子类在继承父类的属性和方法的基础上,又对父类的方法进行了重写,从而使子类并不和父类完全相同,这种情况被称为多态,比如程序2中的子类就有不同于父类中的方法print_info( ),子类的实例调用的是子类特有的方法,父类的实例调用的是父类的方法。
  程序3:子类中重写父类的构造方法
  class Person(object): # 定义了一个类Person
  def __init__(self,name,sex): # 类Person有两个属性name和sex
  self.name = name
  self.sex = sex
  class Child(Person): # 定义了一个子类Child,父类为Person
  def __init__(self,name,sex,brother,sister): # 子类构造方法添加两个属性
  Person.__init__(self,name,sex) # 继承父类的构造方法
  self.brother=brother # 添加属性
  self.sister=sister # 添加属性
  King = Child("King","male","Tom","Jane") # 创建子类Child的实例
  Mary = Person("Mary","female") # 创建父类Person的实例
  print(King.name,":",King.sex,King.brother,King.sister)
  print(Mary.name,":",Mary.sex)
  输出结果:
  King : male Tom Jane
  Mary : female
  如上,子类在继承父类属性的基础上,可以通过重写构造方法再建立独有的属性。

如何选择合适的机器人打磨工具传统的打磨方式已经逐渐地被替代,由于传统的打磨方式工作效率太慢,打磨不均匀,很多的工厂都购买了机器人打磨设备来助力工厂的生产。打磨机器人没有受到烟雾和灰尘的损害。另外,机器人打磨对港股开盘恒生科指高开1。52,科技股餐饮股强势4月28日,港股三大指数高开,恒指涨0。86,国指涨0。97,恒生科技指数涨1。52。盘面上,隔夜热门中概股涨幅居前,大型科技股齐涨,阿里巴巴涨4,百度京东涨近4,京东集团百度集团想实现即时调温,只需轻轻按一下这块鱿鱼皮肤原标题想实现即时调温,只需轻轻按一下这块鱿鱼皮肤近日,美国加利福尼亚大学尔湾分校(UCI)化学与生物分子工程系副教授阿隆戈罗德茨基带领的团队在自然可持续性上发表了一篇论文,称他们找把算法关进法律的笼子随着算法应用的场景拓展,算法技术的触角伸入数字化生活的每个角落电商购物信息知识浏览金融信贷绩效管理AI辅助量刑生物识别及监控安保都有算法的身影,人们无时无刻不笼罩在算法之网中。面对互联网大厂纷传裁员潮世强硬创缘何不停招兵买马?自年初开始,阿里腾讯京东等互联网大厂纷传裁员之事,各种毕业新闻屡见不鲜。裁员寒冬之下,世强硬创却不停大规模招兵买马,从其发布的招聘信息来看,这两年世强一直在以500人以上的增速大举Meta发布预警将来或在数据保护方面遭遇欧盟巨额罚款来源新浪科技北京时间4月28日晚间消息,据报道,Facebook母公司Meta今日发布预警称,在数据保护方面,Meta将来很可能遭到欧盟的巨额罚款。今日,Meta在其2022年第一康佳集团一季报公布净利润同比增长42。68康佳集团一季报公布净利润同比增长42。68财联社4月27日电,深康佳A发布2022年一季度财报,报告期内,康佳实现营业收入83。2亿元,归属于上市公司股东的净利润1亿元,较上年同期微信小程序上传图片到阿里云OSS微信小程序代码1。wxmlimagesrca2020imgdataimg。jpgdatasrcuserInfo。headImgclassuserheadimgbindtapuplo跨境贸易和跨境电商两者定义以及区别简单分析越来越多的小伙伴们开始做跨境生意了,但他们不知道自己做的属于跨境电商还是跨境贸易。今天我们小编就给大家来简单分析一下这两者的区别,以便加深大家的了解。跨境贸易和跨境电商两者定义1跨paypal账号被封?解决方案在这里关于PayPal封号,你需要知道的的6大要点1。为何跨境封号潮频繁上演?其实PayPal这样大规模的封号事件是从今年三月开始的,应该是在3月26号的时候,PayPal就进行了一波大研究基因变异次数与动物寿命有关新华社北京4月28日电参考消息27日刊登英国广播公司网站报道寿命奥秘基因变异次数研究揭示衰老线索。报道摘要如下研究人员发现,从老虎到人类的多种哺乳动物从出生到死亡经历的基因变异次数
起床做的第一件事,99的人都做的不对,你对了吗你是不是也经常这样A你每天早上醒来第一件事是做什么?B关掉闹钟,然后继续睡觉。很多人起床后的第一件事,可能就是这样,但睡着睡着很容易就睡过头了。起床后的第一件事该做什么?这看似简单数据中台到底包括什么内容?一文详解架构设计与组成01数据中台功能架构数据中台建设是一个宏大的工程,涉及整体规划组织搭建中台落地与运营等方方面面的工作,本节重点从物理形态上讲述企业的数据中台应该如何搭建。一般来讲,企业的数据中台在新增28家企业被敲打?海康威视我们能自己设计芯片贸易上的较量自古以来都是大企业拼底牌,小企业过寒冬的时刻。对于华为这类底盘比较稳的大企业来说,拥有领先全球的自研5G技术作为加持项,一时半会儿伤害还不是很大。但是,美国的限制可不仅搭建centos7文件上传服务器完美运行搭建vsftpd文件上传服务器,Vsftp是一个专门为unix类型系统设计一个ftp服务器。FTP(FiletransferProtocl),文件传输协议,用于在网络上进行文件传输鹏博士融合云企业解决方案实例一经典案例一某软件集团方案客户需求某软件集团子业务线,原业务部署在北京和上海IDC,负责数据收集处理,后通过VPN将处理后的数据分发到各中心(北京上海)。随着业务扩大,现有设备负载接米家空气净化器4重磅来袭掀起办公室教师家里的健康革命9月26日0点,空气净化器家族又添一员猛将,那就是米家空气净化器4!首销直降100,仅899元!随着越来越多人对生活品质的追求提高,如何呼吸上一口新鲜的空气,成了大家关注的问题。我美两党正式推出对华法案,涉12处知识产权,7大关键领域美国时间4月8日,美国国会两党正式提出对华法案,敦促拜登政府采取与中国的战略竞争,从而保护美国的重要利益和价值观,旨在抗衡中国日益崛起的全球力量。该法案计划在本月14日的外交关系委美国对中国知识产权代理机构的制裁,来了作者吴征6月8日,美国专利商标局(USPTO)负责商标政策事务的副专员Cotton向中国深圳一家知识产权公司的代表人发出ORDERTOSHOWCAUSE。对该公司组织提交的大量美国先正达知识产权巨无霸亮相科创板,专利盒恐遭拜登新政影响作者黄莺6月30日,先正达集团科创板申请被正式受理。7月2日招股书披露,截至2020年12月31日,先正达全球拥有已授权专利共计11351项,其中发明专利超过9000项,有9。13HarmonyOS2第二批公测机型名单公布包括nova7在内的6款机型从6月2日HarmonyOS2正式发布起,首批涵盖了nova8nova7nova6在内的28款设备内测就已经开始。6月16日,华为再次宣布,nova8nova7nova6等6款机型罗永浩力荐的神车出新款!全球首发超强芯片理想蔚来小鹏被称为国内新造车三势力,其中理想被锤子科技CEO罗永浩不止一次点赞。罗永浩评价,理想ONE是近年试过的几十辆车里综合体验最好的(无可争议的第一名),越级挑战贵两三倍的车