python继承

Python面试重点(基础篇)

不羁岁月 提交于 2020-02-26 13:09:55
Python面试重点(基础篇) 第一部分 必答题 简述列举了解的编程语言及语言间的区别? pythonjavacc++c#gophp----------------------------------------------------------------编程语言分为解释型和编译型: 解释型语言: python 在编写代码的时候不需要编译,在执行的时候,想要用专用的解释器对代码进行编译,全部编译后,才能执行代码 编译型语言: c c++ go 每写一行代码,解释器就会编译一行,然后就可以执行了,编译后的代码不用再次编译 java属于混合型语言 列举Python2和Python3的区别? - python2 中 1.input 获取的就是数据本身 2.源码不统一,重复代码 3.除法的时候返回的是向下取整 4.range()中打印返回的是一个列表 5.int有整形和长整型 6.二次编码用的是ascii 7.只有 iter() 和 next() 8.python2中import包,如果包中没有__init__.py文件就报错 9.多继承:全部都是经典类,经典类就是基类不继承object类 10.python2中的不等于号可以是!=或者<>- python3 中 1.input获取的内容都是字符串 2. 源码统一,不会出现重复代码. 3. 除法返回的是浮点数 4. range(

Python中的元编程

筅森魡賤 提交于 2020-02-26 12:37:56
元编程概念来自lisp和smalltalk 用于生成代码的程序成为元程序metaprogram,编写这种程序就成为元编程metaprogramming Python语言能够通过反射实现元编程。 1 、 type class type(object): def __init__(cls, what, bases=None, dict=None): # known special case of type.__init__ """ type(object_or_name, bases, dict) type(object) -> the object's type type(name, bases, dict) -> a new type # (copied from class doc) """ pass type(name,bases,dict)> a new type返回一一个新的类型。 Type(name,bases,dict)返回一个新的类型; Metaclass=类继承的就是元类了、就是元类的,不写的话直接就是基类。 可以借助type构造任何类,用代码来生成代码,这个就是元编程。 继承列表里面也写metaclass关键字=自已定义的类。 不写的话直接继承type类。 2 、元编程的应用 Attrs是属性的字典。 对照关系: 表、列、行 类、类属性、类实例 ORM

python基础

自闭症网瘾萝莉.ら 提交于 2020-02-26 11:58:33
1:简述列举了解的编程语言及语言间的区别? 编程语言实质上分为:解释型和编译型两种,两种语言实质上是执行机制的不同 编译型语言是指将代码一次性编译生成可执行文件,如果代码出现错误,就需要从头开始编译,缺点是开发效率低,代表是c语言 解释型语言是指将代码交给解释器,由解释器逐行翻译成代码,并且执行,优点是开发效率高,缺点是运行速度慢,需要依赖解释器,代表是python 2:列举python2 和python3的区别? 1、print:在python2中,print被视为一个语句而不是一个函数,python3中,print()被视为一个函数 2、整数的除法:在python2中,键入的任何不带小数的数字,将被视为整数的编程类型。比如5/2=2,解决方法:5.0/2.0=2.5 在python3中,整数除法变得更直观 5/2=2.5 3、Unicode:Python 2 默认使用 ASCII 字母表;Python 3 默认使用 Unicode 4:long整数类型被Python2废弃,统一使用int 5:xrange和range py2:xrange     range py3:range 统一使用range,Python3中range的机制也进行修改并提高了大数据集生成效率 6:包中的__init__.py Python2: 必须要有 Pyhon3: 有没有无所谓 7:新式类

Python面试重点(基础篇)

こ雲淡風輕ζ 提交于 2020-02-26 11:52:46
第一部分 必答题 1,简述列举了解的编程语言及语言间的区别? Python 解释型语言,代码简洁,易懂 C语言 编译型语言,底层语言 c++ 编译型语言,在C语言基础上加了面向对象 Java 混合型语言,可拓展性高 Golang 编译型语言,强类型,代码规范,高并发 语言特点: 灵活简洁,语言优美 可读性强, 语言类型: 解释型:逐行转化,运行效率低,性能差,开发效率高。兼容性好,跨平台 编译型 :一次性编译成二进制文件,执行效率高,兼容性差, 动态语言:不用声明变量的数据类型(脚本类语言) 静态语言:需要声明变量的数据类型 第三方库:python定位是任其发展,开源库很多,应用领域广 2,列举Python2和Python3的区别? python2只更新支持到2020年 print:2不加括号,3加括号 input:2中用户输入解析为int类型,raw_input为字符串类型,3直接是字符串类型 range:2是列表,xrange是可迭代对象;3是可迭代对象 继承关系:2是新式类+经典类;3是新式类 数字表示:2,int和long(长整形,超出2**63-1,数字末尾有一个L);3所有整型都是int 3,看代码写结果: v1 = 1 or 2 # v1 = 1 v2 = 3 and 3 or 9 and 0 # v2 = 7 4,以下的值有什么不同? v1 = [1,2,3] v2

python的metaclass浅析-乾颐堂

爷,独闯天下 提交于 2020-02-26 07:57:40
元类一般用于创建类。在执行类定义时,解释器必须要知道这个类的正确的元类。解释器会先寻找类属性__metaclass__,如果此属性存在,就将这个属性赋值给此类作为它的元类。如果此属性没有定义,它会向上查找父类中的__metaclass__.如果还没有发现__metaclass__属性,解释器会检查名字为__metaclass__的全局变量,如果它存在,就使用它作为元类。否则, 这个类就是一个传统类,并用 types.ClassType 作为此类的元类。 在执行类定义的时候,将检查此类正确的(一般是默认的)元类,元类(通常)传递三个参数(到构造器): 类名,从基类继承数据的元组,和(类的)属性字典。 元类何时被创建? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #!/usr/bin/env python print '1. Metaclass declaration' class Meta( type ): def __init__( cls , name, bases, attrd): super (Meta, cls ).__init__(name,bases,attrd) print '3. Create class %r' % (name) print '2. Class Foo

python issubclass 和 isinstance函数

折月煮酒 提交于 2020-02-26 03:11:51
Python issubclass() 函数 issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。 语法: issubclass(class, classinfo) 参数 class -- 类。 classinfo -- 类。 返回值 如果 class 是 classinfo 的子类返回 True,否则返回 False。 例子: #!/usr/bin/python # -*- coding: UTF-8 -*- class A: pass class B(A): pass print(issubclass(B,A)) # 返回 True Python isinstance() 函数 isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。 isinstance() 与 type() 区别: type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承关系。 如果要判断两个类型是否相同推荐使用 isinstance()。 语法: isinstance(object, classinfo) 参数 object -- 实例对象。 classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。 返回值 如果对象的类型与参数二的类型

python ---16 初识面向对象

╄→гoц情女王★ 提交于 2020-02-26 03:06:33
面向对象 一 .面向对象和面向过程比较     ①面向过程:一切以事物的发展流程为核心          优点:负责的问题流程化,编写相对简单          缺点:可扩展性差     ②面向对象:一切以对象为中心. 一切皆为对象.           具体的某一个事务就是对象          优点:可扩展性强          缺点:编程的复杂度高于面向过程 二.类和对象     ①类:就是图纸,创建对象的第一步      对象:通过类造出来的具体事物,     ②基本格式     class 类名: #创建类 类名用驼峰格式       def __init__(self,参数): # self当前类的对象,参数一般作为属性         self.属性 = 值         self.属性 = 值         def 方法(self , 参数) #即函数         方法体(函数体,return)     变量 = 类名() #创建对象     变量.属性 #访问对象的属性信息     变量.方法() #访问类中的方法 三.3大特征 ( 封装, 继承, 多态.)   ①封装   1.对属性的封装 2.对方法和功能的封装 3.模块和包   ②继承 :     ⼦类可以⾃动拥有⽗类中除了私有属性外的其他所有内容.      对父类进行扩展      

python 简单元编程

夙愿已清 提交于 2020-02-26 02:27:57
软件开发领域中最经典的口头禅就是“don’t repeat yourself”。 也就是说,任何时候当你的程序中存在高度重复(或者是通过剪切复制)的代码时,都应该想想是否有更好的解决方案。 在Python当中,通常都可以通过元编程来解决这类问题。 简而言之,元编程就是关于创建操作源代码(比如修改、生成或包装原来的代码)的函数和类。 主要技术是使用装饰器、类装饰器和元类。   一、你想在函数上添加一个包装器,增加额外的操作处理(比如日志、计时等)。   之前思路:利用装饰器。   装饰器最基本的原理如下:   @timethis def countdown(n): pass   效果等同如下: def countdown(n): pass countdown = timethis(countdown)   所以我们在inner函数中实现我们想要的业务逻辑即可。 def wraper(func): def inner(*args,**kwargs): # 你想实现的额外功能 res = func() return res return inner 但是如果我们打印 func.__name__,就会出现inner,这个函数的重要的元信息比如名字、文档字符串、注解和参数签名都丢失了。   二、如何解决上述问题呢   注意:任何时候你定义装饰器的时候,都应该使用 functools 库中的

从无到有用Python创造一门属于自己的编程语言1

安稳与你 提交于 2020-02-25 23:37:24
前言 如果你会编译原理,对其中的词法分析算法,语法分析算法足够了解,那么用什么语言来做这样的一件事情都是可以的,之所以使用Python只是因为本人会的编程语言中, Python的使用时间最长,也最得心应手。所谓性能什么的不在本文的考虑范围内, 本文主要重点是语法分析的表达式的解析,语法解析使用的是普拉特分析法,一种自顶向下的语法解析方法。 文章目录如下: 四则运算的问题 词法分析 语法分析与解释执行 参考链接 这有什么用 后记 源代码 四则运算的问题 怎么解决让代码算出以下解决结果?(假设问题代码保存文1.txt) 1 + 2 * 3 - 4 / 5 不用语法分析, 最简答的解决办法就是 with open("1.txt") as rf: print(eval(rf.read())) # 输出结果 6.2 那么如果是以下面的代码呢?(假设问题代码保存文2.txt) add(1, add(1,2)) 不用语法分析, 最简单的解决办法是 def add(a, b): return a + b with open("2.txt") as rf: print(eval(rf.read()), dict(add=add)) # 输出结果 4 {'add': <function add at 0x0000013E8033AD90>} 如果要求加法的优先级大于乘法呢?就是说先加后乘,比如1+2

Python编程 ---面向对象基础

被刻印的时光 ゝ 提交于 2020-02-25 22:17:59
文章目录 面向对象三要素 类的定义 类方法和静态方法 访问控制 面向对象三要素 封装 组装:将一组数据结构和操作这些数据结构的方法组装到一起 隐藏数据:对外只暴露一些接口,通过接口访问对象。就像开车一样,你不知道车的组成原理,但是知道车辆驱动的方式就行了 继承 多复用:子类能够继承父类或以上的类的方法,这样来自继承类的方法就可以不用自己再编写代码。使代码更加精简。 多继承少修改:能够继承大部分特性,再通过重写的方式来增加一些特色 多态 不同的子类继承父类的同一方法,然后通过重写或者覆盖的方式来增加子类的特色,从而实现多态 类的定义 1.使用关键字class 2.类名建议使用大驼峰方式,本质上是个标识符 3.类定义完成后,会生成一个类对象,绑定到了类名上 class School : """这是个学校类""" a = 123 x = 'abc' def __init__ ( self , name , level ) : self . name = name self . level = level def show_propertites ( self ) : return 'name is {}, level is {}' . format ( self . name , self . level ) school1 = School ( 'school_a' , 'grade