今天,我们来介绍Python的面向对象编程,其实面向对象并不陌生,在C++  ,Java  ,PHP中也有大量使用!

  好了,我们来步入正题!

  那什么是面向对象编程呢?

    1. 面向对象编程是一种程序设计的范式

    2. 把程序看作是不同对象的相互调用

    3. 它是对现实世界建立对象模型

  下面我们来介绍一下面向对象的基本思想:

    类和实例,类用于定义抽象类型,实例根据类的定义被创建出来。

    

  如上图所示:人可以看作是一个模型,而张三,李四,王五,计算根据就是根据人这个模型而构造出来的一个个实体。

  而这里我们可以说,人就是类的定义,而张三,李四,王五他们就是实例,如下图所示:

    

    在Python中,类是由关键字class来定义,

      

  面向对象最重要的一个思想是数据封装,我们可以在类中定义属性和方法。

  class Person:

    def __init__(self,name):

      self.name = name

  p1 = Person('zs')

  p2 = Person('ls')

  p3 = Person('ww')

  上面就是面向对象的大体内容,接下来我们详细介绍一下:

  

  1.定义类并创建实例:

    在Python中,类通过class来定义,比如我们来定义一个Person类:

      class Person(object):

        pass...

        ......

      在Python的编程习惯中,类名以大写字母开头,紧接着是(object),表示该类是从哪个类继承下来的。在这里假设是从object类继承下来!

    有了类的定义,我们就可以创建出具体的实例,创建实例使用类名(),即 ls = Person().

  2.创建实例属性:

    虽然Person类可以创建出ls,ww,等等实例,但是这些实例看上去除了地址不同外,没有什么其他不同。但是如果让每个实例·拥有各自不同的属性,那我们就可以区分他    们了,那么如何给实例赋予属性的!当然了,大家都知道,Python是动态语言,对于每一个实例,都可以直接给他们的属性赋值:

      ls = Person()

      ls.name = 'li si'

      ls.birth = '1995-6-5'

      ls.age = 21

      而且,实例的属性可以像普通变量一样进行操作,ls.age = ls.age + 2

  类与list结合的情况:

    class Person(object):

      pass

    p1 = Person()

    p1.name = 'bart'

    p2 = Person()

    p2.name = 'adam'

    p3 = Person()

    p3.name = 'lisa'

    list1 = [p1,p2,p3]

    list2 = [p1,p2,p3]

    print (list2[0].name)

    print (list2[1].name)

    print (list2[2].name)

好了,我们今天先说到这里,现在我要去上课了,回来之后接着给大家分享哈!

Python的面向对象1的更多相关文章

  1. python基础——面向对象编程

    python基础——面向对象编程 面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...

  2. Python的面向对象3

    接下来,我们接着讲Python的面向对象,在上一次的博客中,我们详细介绍了类与对象的属性,今天,我们来详细介绍一下面向对象中的方法! 1.定义实例方法 一个实例的私有属性就是以__开头的属性,无法被外 ...

  3. Python的面向对象2

    我们接着讲解Python的面向对象 1.初始化实例属性 在现实生活中,一种类型的实例会具有相同的某些属性,把这些实例划分为一个类型,则这些实例必然有相似的部分.但是,在创建实例之后,我们一个一个的为实 ...

  4. My way to Python - Day05 - 面向对象-思维导图

    My way to Python - Day05 - 面向对象   思维导图

  5. Python进阶---面向对象的程序设计思想

    Python的面向对象 一.面向过程与面向对象的对比 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...

  6. Python之面向对象一

    引子 小游戏:人狗大战 角色:人和狗 角色属性:姓名,血量,战斗力和性别(种类) 技能:打/咬 用函数实现人打狗和狗咬人的情形 def Dog(name,blood,aggr,kind): dog = ...

  7. python基础——面向对象进阶下

    python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...

  8. python基础——面向对象进阶

    python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...

  9. python基础——面向对象的程序设计

    python基础--面向对象的程序设计 1 什么是面向对象的程序设计 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优 ...

随机推荐

  1. eclipse mybatis Generator

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  2. Kivy A to Z -- 怎样从python代码中直接訪问Android的Service

    在Kivy中,通过pyjnius扩展能够间接调用Java代码,而pyjnius利用的是Java的反射机制.可是在Python对象和Java对象中转来转去总让人感觉到十分别扭.好在android提供了b ...

  3. DNS 和 IPv6 配置攻略

    Windows 2003 DNS配置攻略 http://lgzeng2360.blog.51cto.com/275998/161908/ http://ask.zol.com.cn/q/21861.h ...

  4. Java基础知识强化之IO流笔记37:FileReader/FileWriter(转换流的子类)复制文本文件案例

    1. 转换流的简化写法: 由于我们常见的操作都是使用本地默认编码,所以,不用指定编码.而转换流的名称有点长,所以,Java就提供了其子类供我们使用:FileReader / FileWriterOut ...

  5. iOS之UIview动画

    一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成, ...

  6. ASP.NET Mvc开发之EF延迟加载

    EF延迟加载:就是使用Lamabda表达式或者Linq 从 EF实体对象中查询数据时,EF并不是直接将数据查询出来,而是在用到具体数据的时候才会加载到内存. 一,实体对象的Where方法返回一个什么对 ...

  7. skynet是什么

         云风的skynet,定义为一个游戏服务器框架,用c + lua基于Actor模型实现.代码极其精简,c部分的代码只有三千行左右.      整个skynet框架要解决的核心问题是:把一个消息 ...

  8. Oracle常用查询命令

    Oracle查询完整格式如下: Select  *  from XX where XX group by YY having XX order by YY Select count(*), XX fr ...

  9. Calendar 类的应用

    上一篇 说的 Date 类 最主要的作用就是获得当前时间,同事这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多的批评,不推荐使用,要推荐使用Calendar 类进 ...

  10. C++学习(四)

    一.拷贝构造函数和拷贝赋值运算符1.拷贝构造:用一个已有的对象,构造和它同类型的副本对象——克隆.2.形如class X {  X (const X& that) { ... }};的构造函数 ...