欢迎来到首页|亚博电竞官网地址|亚博电竞APP下载官方版!

contact us

工程部:姬经理

手机:15990721112

当前位置:主页 > 常见问题 >

Python基础常见问题总结(一)

更新时间:2020-08-28 05:20

首页|亚博电竞官网地址|亚博电竞APP下载官方版 2.请您简述Python编译的工作原理,PyCodeObject 和 PyFrameObject 对象的作用。Python编译的工作原理:Python语言写的程序不需要编译成二进制代码,它可以直 接从源代码运行程序。当我们运行

  2.请您简述Python编译的工作原理,PyCodeObject 和 PyFrameObject 对象的作用。Python编译的工作原理:Python语言写的程序不需要编译成二进制代码,它可以直 接从源代码运行程序。当我们运行Python文件程序的时候, Python解释器把源代码转换成中间形式:字节码,然后再由Python虚 拟机来执行这些字节码。PyCodeObject对象:pyc 字节码在Python虚拟机中对应的是PyCodeObject对象,虚拟机将字节封装成一个PyCodeObject对象再一条条执行字节码指令。PyFrameObject对象:当发生函数调用时,创建新的帧,对应Python的实现就是PyFrameObject对象。

  self是实例方法定义中的第一个参数,代表该方法的实例对象cls是类方法中的第一个参数,代表当前类super是指在Python面向对象的继承特征下中,若子类调用父类方法则需要super()实现。

  @classmethod是类装饰器,使用装饰器方法定义类方法告知Python的解释器该方法为类方法,装饰器优化该方法的执行效率。@staticmethod是静态方法装饰器,使用装饰器方法定义静态方法告知Python的解释器该方法为静态方法,装饰器优化该方法的执行效率。

  5.如何理解闭包Closure(作用)?其语法规范要求?(可编写片段代码实现闭包规范)闭包:在一个外函数内定义了一个内函数 ,内函数运用了外函数的临时变量,并且外函数的返回值是内函数的引用,这样就形成了闭包

  迭代器就是用于迭代操作(for循环)的对象,它像列表一样,可以迭代获取其中的每一个元素,任何实现了next()方法的对象都可以被称为迭代器。对于可迭代对象(序列、range函数返回值、zip函数返回值、enumerate函数返回值等等)调用iter()函数就会返回一个迭代器,对于迭代器用iter方法就会返回迭代器自身。

  列表list支持的特性:索引、切片、连接、重复、成员操作符元组tuple支持的特性:索引、切片、连接、重复、成员操作符字典dictionary不支持这些特性列表list属于可变数据类型,是有序的、可迭代的(支持for循环遍历)元组tuple属于不可变数据类型,是有序的、可迭代的(支持for循环遍历)字典dictionary属于可变数据类型,是无序的、可迭代的(支持for循环遍历)

  8.如何理解生成器Generator? 在Python中有几种实现方式(可编写片段代码说明)?

  生成器本质上是一个高级迭代器,使得所需要返回的一系列元素所需的代码更加简单和高效。生成器有两种实现方式:(1).生成器函数生成器函数:常规函数定义中使用return返回结果,在生成器函数中使用yield关键字代替return,yield语句一次返回一个结果,在每个结果中间挂起函数的状态,以便下一次从它离开的地方执行。

  (2).生成器表达式生成器表达式:和列表生成式相似,不过将“[]”改为“()”,但是生成器返回按需产生结果的一个对象,而不是一次构建一个结果列表。

  9.Python中的异常是什么?分为几种?多except捕获异常的规范要求都有哪些?

  异常是一个事件,该事件会在程序执行过程中发生,影响程序正常执行,在Python中程序无法正常处理时,就会抛出异常。在Python中常见的异常处理为单异常和多异常处理,在Python3中长使用try ... except ... finally处理,常见的有try ... except ...、try ... except ... except ... except ...(多except捕获)、try ... except ... else/finally.对于try ... except ... else/finally来说,else中的语句是当try语句块出现异常时不执行,当try语句块无异常时执行,如果替换为finally则是不论try语句块是否出现异常finally都会执行。多except捕获异常:一个try语句块可能包含多个except字句,分别用来处理不同的特定的异常,在多异常捕获时,我们常将小异常放在前面,大异常在后面,用于避免程序在处理时,异常不能分别处理,从而将所有异常归为一个异常进行处理。

  Python不支持多态,并且也用不到多态,多态是应用于Java和c#这一类强类型语言中,而Python推崇“鸭子类型”。“鸭子类型”是动态类型的一种风格,在这种风格中,一个对象有效的语义不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定。

  装饰器就是用来装饰函数的,想要增强原有函数的功能,但不希望改变现函数的定义,是一种在代码运行期间动态增加功能的方式。定义的装饰器实际上是返回函数的高阶函数。

  这两个参数为函数定义中参数列表中排名最后的参数*args代表该参数位置可以任意个参数,最后都会转为元组数据类型在函数体内处理**kwargs代表该参数位置可以放key-value格式的数据,最终都会转化为字段形式数据在函数体内处理。

  @property装饰器将方法定义为属性,后续可以使用对象.属性名的方式输出

  所谓序列化是将编程语言中的各种对象转化为字节流的过程,同时也可以逆向操作将字节流还原成一个对象,这个过程称为发序列化。

  python异常的关键字有:try,except,else,finallytry语块执行方式:(1)首先执行try字句.(2)如果没有异常发生,忽略except子句,try子句执行后结束(3)如果执行try子句过程中发生异常,那么try子句余下的部分将被忽略,如果异常与except关键字后的名称相同,那么对应的except子句被执行,最后执行try语句之后的代码(4)如果一个异常没有与任何except匹配,那么这个异常会传递给上层的try中,对于可选子句else子句,如果使用这个子句,那么必须放在所有的except子句后,这个子句在try子句没有发生任何异常的时候执行,对于finally来说,不管前面子句是否执行,finally中的语句都会执行。

  消灭JavaScript怪兽第二季(9-11):闭包/对象创建模式/类的继承

上一篇:python常见问题(面试相关)
下一篇:原神新手常见问题解答 原神新手怎么玩
联系方式
  • 首页|亚博电竞官网地址|亚博电竞APP下载官方版
  • 手 机:15990721112
  • 联系人:工程部(姬经理)
  • 地 址:温州市龙湾区永强大道3468号(康一牌坊旁)