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. 【Linux】【Jenkins】编译过程中遇到ERROR: Failed to parse POMs的解决方案

    自动化构建的时候报错,网搜查询说是maven的jenkinks配置问题导致的.修改系统工具配置的maven配置就可以了 Started by user XX Building in workspace ...

  2. ARCore中根据屏幕坐标计算射线的算法

    ARCore中提供了根据屏幕坐标.视口大小及view. project矩阵计算从屏幕坐标发射一条射线的方法,此方法用于3D拾取. class Ray { public final Vector3f o ...

  3. RGB颜色值转化为long 型数字

    通常我们表达颜色都是使用RGB值表示的,今天在VB中设置RGB值居然是一个整形数字,网上各种搜资料发现这个数字是怎么来的: 数值= 65536*Blue + 256* Green + Red

  4. python中的多进程与多线程(一)

    进程是一个执行中的程序,每个进程有自己的地址空间.内存.数据栈以及其他用于跟踪执行的辅助数据.操作系统管理其上所有进程,并合理分配时间. 进程也可以通过fork或spawn派生新的进程,每个新进程有自 ...

  5. Delphi TXLSReadWriteII2 带的demo中直接编辑XLS文件的例子

    unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ...

  6. CSS定位方法

  7. mybatis-generator 覆盖新增XML

    参考文章:https://www.cnblogs.com/xxoome/p/10068780.html 1.添加依赖(版本1.3.7) plugin> <groupId>org.my ...

  8. sqlserver truncate清空表时候,无法删除 'B表',因为该表正由一个 FOREIGN KEY 约束引用。

    外键: 查询:select object_name(a.parent_object_id) 'tables'  from sys.foreign_keys a  where a.referenced_ ...

  9. 部分用户访问Polycom视频会议时故障

    1.现象 Polycom视频会议服务器部署在防火墙下,通过Paloalto防火墙的一对一映射到公网. 部分同事使用职场网络或者4G通过公网访问时,出现超时问题. 2.分析: Polycom设备并没有做 ...

  10. [leetcode]150. Evaluate Reverse Polish Notation逆波兰表示法

    Evaluate the value of an arithmetic expression in Reverse Polish Notation. Valid operators are +, -, ...