我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python 03

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python   03

刚才我们提到了,可以在已有类的基础上创建新类,这其中的一种做法就是让一个类从另一个类那里将属性和方法直接继承下来,从而减少重复代码的编写。提供继承信息的我们称之为父类,也叫超类或基类;得到继承信息的我们称之为子类,也叫派生类或衍生类。子类除了继承父类提供的属性和方法,还可以定义自己特有的属性和方法,所以子类比父类拥有的更多的能力,在实际开发中,我们经常会用子类对象去替换掉一个父类对象,这是面向对象编程中一个常见的行为,对应的原则称之为里氏替换原则。下面我们先看一个继承的例子。


                class  Person(object):
                                """人"""
                                      def   __init__(self,name,age):
                                               self._name = name
                                                self.age = age              
                          @property
                           def   name(self):
                                 return self._name

                         @property
                                def   age(self):
                            return self._age

                         @age.setter
                        def   grade(self, grade):
                                  self._grade = grade

                        def study(self, course):
                          print('%s的%s正在学习%s.' % (self._grade, self._name, course))
                    class Teacher(Person)
                    def __init__(self, name, age, title):
                        super().__init__(name, age)
                            self._title = title

                            @property
                            def title(self):
                                return self._title

                            @title.setter
                            def title(self, title):
                                self._title = title

                            def teach(self, course):
                            print('%s%s正在讲%s.' % (self._name, self._title, course))
                            def main():
                            stu = Student('王大锤', 15, '初三')
                            stu.study('数学')
                            stu.watch_av()
                            t = Teacher('骆昊', 38, '老叫兽')
                            t.teach('Python程序设计')
                            t.watch_av()
                            if __name__ == '__main__':
                            main()
                        子类在继承了父类的方法后,可以对父类已有的方法给出新的实现版本,这个动作称之为方法重写(override)。通过方法重写我们可以让父类的同一个行为在子类中拥有不同的实现版本,当我们调用这个经过子类重写的方法时,不同的子类对象会表现出不同的行为,这个就是多态(poly-morphism)。

     列表生成式
     a = [x for x in range(100000000000) if   x %  2==0]
     优点:计算速度快,因为一次性已经加载到内存中了,适合数据量不太大的情况
     缺点:占用内存
     生成器
     a = (x   for    x     in    range(10000000000)    if   x  %  2 ==0)
     优点:节约内存空间
     缺点:计算速度慢,因为要生成

     继承代码:
           class    A(object):
                    def  __init__(self):
                        self.a = 100                            
                             def A1(self):
                                 print("A1)                                          
                    在类名中写上继承的类                          
            class   B(A):
                     def   init(self):
                              A.init(self)
                                self.b = 200
                                def  B1(self);
                             print(‘B1')

                装饰器代码
                def deco(func):
                   def warp(a,b):
                   print(a+b)
                   return func(a,b)
             return warp
                                                @deco
                            def qa(a,b):
                                print("a,b")
                    qa(100,20)

     装饰器参数代码
        #装饰器将前面两个数字的求和,函数本身第三个数乘上这个和。
                     def qa(func): 
                        def warp(num1,num2,num3):
                        num = num1 + num2 
                        return func(0,num,num3)
                        return warp

                        @qa
                        def SUM(num1,num2,num3):
                        print(num1,num2,num3)
                        print(num2*num3)

                    SUM(5,8,9)

                 闭包
                                     def foo():
                                            l = []
                                            def bar(i):
                                                l.append(i)
                                                return l
                                        return bar
                f1 = foo()
                res1 = f1(1)
                print(res1)
                res2 = f1(2)
                print(res2)
                输出结果是               
                                 [1]
                                 [1, 2]

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python 03

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 03

刚才我们提到了,可以在已有类的基础上创建新类,这其中的一种做法就是让一个类从另一个类那里将属性和方法直接继承下来,从而减少重复代码的编写。提供继承信息的我们称之为父类,也叫超类或基类;得到继承信息的我们称之为子类,也叫派生类或衍生类。子类除
2023-01-31

【Python2】03、Python对象

一、Python对象的相关术语      Python中一切皆对象,python程序中保存的所有数据都是围绕对象这个概念展开的;所有的对象都是由类实例化而来的,只不过这些类有些是python内置的类;例如,整数和浮点数,字符串都是由pyth
2023-01-31

Python GUI 03----But

1.一个简单的Button应用from tkinter import *#定义Button的回调函数def helloButton(): print ('hello button')root = Tk()#通过command属性来指定
2023-01-31

【Python】03、python多版本

一、pyenv介绍        CentOS6系统会自带一个较低版本的python,一般不使用系统自带的python版本,因为系统很多组件依赖于python比如yum,如果我们随意升级或者安装了些有冲突包可能会影响系统环境;我们需要再安装
2023-01-31

Python-爬虫03:urllib.r

目录 1. urllib.request的基本使用 1.1 urlopen 1.2. 用urlopen来获取网络源代码 1.3. urllib.request.
2023-01-30

python之路---03 整型 boo

十三、整型(int)      基本操作:      1.+ - * / % // **      2.  .bit_length() 计算整数在内存中占⽤的⼆进制码的⻓度如:    十四、布尔值(bool) True  False  1.
2023-01-30

我的Python成长之路—03

1.文件管理 <1>查看文件信息:ls ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。 Linux文件或者目录名称最长可以有265个字符,“.”
2023-01-31

redis笔记03

Redis数据类型Redis 数据类型redis支持种数据类型 :string(字符串)hash(哈希)list(列表)set(集合)zset(sorted set:有序集合)String(字符串)string是redis最基本的类型,你可以理解成与Memca
redis笔记03
2020-01-13

【Python基础 03】变量的基本使用

程序就是用来处理数据的,而变量就是用来存储数据的目标变量定义变量的类型变量的命名01. 变量定义在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建等号(=)用来给变量赋值= 左边是一个变量名= 右边是存储
2023-01-31

人生苦短我用python(03),如何调

文章内容为原创,欢迎转载请注明出处作者: EflyPro->晦明禅师文章来源:公众号“睿江云计算”     今天我们要为大家介绍的是,如何调试python程序0.安装基础包我们以Ubuntu 16.04 为例子    sudo apt-ge
2023-01-31

【Python3】03、基本语法

1、求100万以内的所有素数  质数又称素数,除了1和它本身以外不再有其他因数的数称为质数。      0和1都既不是质数也不是合数为什么质数检验到N的开方就可以结束了?  因为所有N的除数都是以根号N为轴对称的假如一个数N是合数,它有一个
2023-01-31

Python 开发环境搭建(03):Linux 下 eclipse 安装

一、安装jdk下载jdk打开Oracle官网https://www.oracle.com/index.html单击 Downloads单击 Java单击 Java SE单击 Download下载(http://download.oracle
2023-06-02

03、MySql的数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。1、数字类型 类型大小范围(有符号)范围(无符号)用途TINYINT1 字节(-128,127)(0,255)小整数值S
03、MySql的数据类型
2021-08-14

Python图形编程探索系列-03-标签

跳转到自己的博客什么是标签?通俗的将就相当于word的功能,能够进行显示不可修改的文字、图片或者图文混排。图1 背景图构成:内容区(黑色),填充区(绿色),边框(黄色)1 https://blog.csdn.net/weixin_41738
2023-01-30

03.事务隔离

简单来说,事务就是要保证一级数据库操作,要么全部成功,要么全部失败。在MySQL中,事务支持是在引擎层实现的,但MySQL中并不是所有引擎都支持事务,比如Mysql原生的MyISAM引擎就不支持事务。   下面,我们将心InnoDb为例,剖析MySQL在事务支
03.事务隔离
2022-01-27

day24 03 多继承

day24 03 多继承 正常的代码中  单继承==减少了代码的重复继承表达的是一种 子类是父类的关系 1、简单的多继承关系 A,B,C,D四个类,其中D类继承A,B,C三个父类,因此也叫多继承,子类方法调用的时候先找自己里面的,没有再根据
2023-01-31

Linux-03-命令使用

一、常见命令1、常见操作mkdir -p ./a/b/c //递归创建多层目录mkdir ./abc/{,x,y,z}dir //在abc下创建xdir,ydir,cdir文件夹cd ~syraer //进入用户名syraer下的用户目
2023-06-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录