1.类和对象:

类对象支持两种操作:属性引用和实例化。

属性引用:obj.name

构造方法:类会定义一个名为__int__()的特殊方法如下

def  __init__(self):

      self.data=[]

类定义了__init__()方法的话,类的实例化操作会自动调用__init__()的方法。如下所示:

X=Class()

当然,__init__()方法可以有参数,参数通过__init__()传递到类的实例化操作上。如下所示:

class All:

    def __init__(self,realpart,imagpart):

            self.r=realpart

            self.i=imagpart

X=All(2,3.2)

print(X.r,X.i)

这样我们就把值传递到了X上,输出的结果为:2 3.2

看到这里,我们也许会对self产生疑问,下面我们就对self 进行解释:

self代表类的实例,奥不是类,代表的是当前对象的地址,self.class则指向类

这里要注意的是self并不是python的关键字,我们把它化成we也是可以的,只不过我们

规定用self。

2.类的方法

在类的内部,使用def关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数,self代表的是

类的实例。

class man:

    name=''

    age=''

    __weigth=0(__. 属性为私用的属性,在内部类无法进行直接访问)

    def __init__(self,n,a,w):

             self.name=n

             self.age=a

             self.__weigth=w

      def speak(self):

             print("%ssay:I am%do ld。"%(self.name,self.age))

下面我们来实例化:

p=man('xiaodong',20,170)

p.speak()

以上代码的输出为:

xiaodong say:i am 20 old

如果我们想要输出__weight,却是没有结果的,该属性只用在 man中使用

3.类的继承:

python的基类中如果有相同的方法名,但是在子类中使用时却没有指定,python从左到右搜索就方法在子类中没有找到时,查找基类中是否包含方法

如下:

class dong:

 

clas dong1要继承class dong

clss dong1 (class dong)

当然类可以多继承,但是要注意圆括号父类的排序,如果父类中有相同的方法名,但是子类使用时没用指定,python从左到右搜索再到父类中是否包含该方法。如下:

calss dong1

class dong2

dong3继承上面的类

class dong3(dong1,dong2):

     a=''

     def __init__(self ,n,a,w,g):

      dong1.__init___(self,n,a,w,g)

      dong2.__init__(self,n.t)

test=sample("Tim",25,80,4,"python")

test.speak()

4.方法的重写:

如果你的父方法的功能不可以满足你的需求,那么你可在子类重写你父的方法,如下:

class P arent:

     def muMethon(self):

           print(" 调用父类方法")

class  Child(Parent):

     def muMethon(self):

         print(" 调用子类的方法')

c=Child()

c.muMethon()

执行以上代码的输出结果为:

调用子类方法

5.运算符重载;

class dong:

    def __init__(self,a,b):

            self.a=a

             self.b=b         

     def __str__(self):

         return' dong(%d,%d)'%(self.a,self.b)

      def__add__(self,other):

          retur dong(self.a+other.a,self.b+other.b)

v1=dong(2,10)

v2=dong(5,-2)

print(v1+v2)

以上代码的执行结果为dong(7,8)

6.  装饰

装饰

对原有的方法进行美化,更好的实现功能,如下我们以吃火锅为例子:

原材料:
锅底

装饰:

肥牛 品羊肉  蔬菜

import types

def feiniu(n):
    print("肥牛:¥58")
    if type(n) == types.FunctionType:
        return  n()+58
    return n+58
def shucai(n):
    print("蔬菜:$17")
    if type(n) == types.FunctionType:
        return n()+17
    return n+17
@shucai
@feiniu
def mala():
    print("麻辣锅底:$12")
    return 12

print("共消费:"+str(mala))

   

      

     

Python学习第四章的更多相关文章

  1. Python学习(四)数据结构(概要)

    Python 数据结构 本章介绍 Python 主要的 built-type(内建数据类型),包括如下: Numeric types          int float Text Sequence ...

  2. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

  3. python学习第四次笔记

    python学习第四次记录 列表list 列表可以存储不同数据类型,而且可以存储大量数据,python的限制是 536870912 个元素,64位python的限制是 1152921504606846 ...

  4. python学习-第四天补充-面向对象

    python学习-第四天补充-面向对象 python 私有 --name mangling(名字修改.名字) 在命名时,通过使用两个下划线作为开头,可以使得这个变量或者函数编程私有的,但是这个其实的p ...

  5. python学习第四十八天json模块与pickle模块差异

    在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点  跨语言,体积小 缺点 只能支持 int st ...

  6. [Python笔记][第四章Python正则表达式]

    2016/1/28学习内容 第四章 Python字符串与正则表达式之正则表达式 正则表达式是字符串处理的有力工具和技术,正则表达式使用预定义的特定模式去匹配一类具有共同特征的字符串,主要用于字符串处理 ...

  7. python学习(四) 字典:当索引不好用时

    第四章 字典:当索引不好用时 4.1 字典的使用 字典的适用场景: 表示一个游戏棋盘的状态,每个键都是由坐标值组成的元组: 存储文件修改时间,用文件名作为键: 数字电话/地址簿 4.2 创建和使用字典 ...

  8. python 教程 第四章、 控制流

    第四章. 控制流 控制语句后面要加冒号: 1)    if语句 if guess == number: print 'Congratulations, you guessed it.' # New b ...

  9. Java基础知识二次学习--第四章 异常

    第四章 异常处理   时间:2017年4月26日11:16:39~2017年4月26日11:28:58 章节:04章_01节 04章_02节 视频长度:20:46+01:16 内容:异常的概念 心得: ...

随机推荐

  1. EasyUi 复杂多表头设置

    columns: [ [ { field: 'Test', title: '测试', rowspan: 3, width: 100, sortable: true }, { title: '测试1', ...

  2. ORM对象关系映射

    ORM 总结: ORM:对象关系映射 作用: 1.将定义数据库模型类--> 数据库表 2.将定义数据库模型类中的属性--->数据库表字段 3.将模型对象的操作(add,delete,com ...

  3. leetcode1027

    最直接的思路是三层循环,但是会超时,代码如下: public class Solution { public int LongestArithSeqLength2(int[] A) { ; var l ...

  4. 活用RPM获取包的信息

    rpm -q 功效大 如果你想要在系统上安装.卸载或是升级软件,需要对系统软件进行查询:或是有如下的场景: 安装了一个软件,需要知道这个软件的版本. 遇到一个文件,不认识它,需要知道它是什么软件,有什 ...

  5. MM-实际应用中的难题

    SAP系统实际应用中的十大难题——塞依SAP培训 难题1:采购料维修 如果有物料坏了,需要退回给供应商处维修,此时一般不做退货.因为,第一,供应商不一定会乐意:第二,往来单据也无谓地增多:第三,最重要 ...

  6. http建立连接过程

    参考:http://blog.csdn.net/wangjun5159/article/details/51510594

  7. Redux使用教程

    在开始之前,需要安装环境,node.js可以使用npm管理包,开发的工具webstorm可以创建相应的项目. 项目中redux是管理全局的同一个store,React-router是管理路由的,这里只 ...

  8. MySQL中Checkpoint技术

    个人读书笔记,详情参考<MySQL技术内幕 Innodb存储引擎> 1,checkpoint产生的背景数据库在发生增删查改操作的时候,都是先在buffer pool中完成的,为了提高事物操 ...

  9. week07 13.3 NewsPipeline之 三News Deduper之 tf_idf 查重

    我们运行看结果 安装包sklearn 安装numpy 安装scipy 终于可以啦 我们把安装的包都写在文件里面吧 4行4列 轴对称 只需要看一半就可以 横着看 竖着看都行 数值越接近1 表示越相似 我 ...

  10. Linux下chkconfig命令介绍

    一.引论 chkconfig命令检查.设置系统的各种服务.这是Red Hat公司遵循GPL规则所开发的程序,它可查询操作系统在每一个执行等级中会执行哪些系统服务, 其中包括各类常驻服务.谨记chkco ...