python高频面试题_Python高频面试题及其答案(推荐)

命名空间和作用域的关系:

命名空间定义了在某个作用域内变量名和绑定值之间的对应关系,

命名空间是键值对的集合,变量名与值是一一对应关系。

作用域定义了命名空间中的变量能够在多大范围内起作用。

装饰器函数的作用?写一个装饰器程序:

在不修改原函数及其调用方式的情况下对原函数功能进行扩展

def outer(f):

def inner():

print("**")

f()

print("*")

return inner

@outer**

def func():**

print("华晨宇演唱会")**

func()*

****

闭包的形成要件是什么,写一个闭包函数:

闭包函数必须有内嵌函数、

内嵌函数必须要引用外层函数的变量、

闭包函数返回内嵌函数的地址(函数名称)

def func():

name="ruirui"

def inner():

print(name)

return inner

f=func()

f()

***

简述try、except语句的用法:

程序先执行try中的代码,如果try中代码没有出错,则不会执行except中的异常代码。

如果try中的代码出错了,则执行exception中的异常代码。

简述read, readline, readlines的区别:

read会一次性读取文件的全部内容

readline 每次读取一行,并且自带换行功,每一行末尾会读到\n

Readlines  一次性以行的形式读取文件的所有内容并返回一个list,需要去遍历读出来

简述深拷贝和浅拷贝:

浅拷贝:对内存地址的复制,让目标对象指针和源对象指向同一片内存空间。

深拷贝:拷贝对象的具体内容,二内存地址是自主分配的,

拷贝结束之后俩个对象虽然存的值是一样的,但是内存地址不一样,俩个对象页互相不影响,互不干涉

简述python中类方法和静态方法:

类方法是类对象的方法,在定义时需要在上方使用“@classmethod”进行装饰,

形参为 cls,表示类对象,类对象和实例对象都可调用。

静态方法是一个任意函数,在其上方使用“@staticmethod”进行装饰,可以用对象直接调用,

静态方法实际上跟该类没有太大关系。

请简述你对面向对象的理解:

在编写代码时只写框架思路,具体实现还未编写就可以用 pass 进行占位,使程序不报错,

不会进面向对象的编程,简称:OOP,是一种编程的思想。

OOP把对象当成一个程序的基本单元,一个对象包含了数据和操作数据的函数。

面向对象的出现极大的提高了编程的效率,使其编程的重用性增高。

python面向对象的重要术语:

1.多态(polymorphism):一个函数有多种表现形式,调用一个方法有多种形式,但是表现出的方法是不一样的。

2.继承(inheritance)子项继承父项的某些功能,在程序中表现某种联系

3.封装(encapsulation)把需要重用的函数或者功能封装,方便其他程序直接调用

4.类:对具有相同数据或者方法的一组对象的集合

5.对象:对象是一个类的具体事例

简述实例属性与类属性的区别以及实例方法与类方法,静态方法的区别:

类属性和实例属性的区别:在Python中一切皆对象,类是一个特殊的对象即类对象,

描述类的属性称为类属性,它属于类。类属性在内存中只有一份,所有实例对象公用,在init外部定义。

实例属性:用来描述类创建出来的实例对象,需要通过对象来访问,

在各自对象的内存中都保存一份,在init方法内部定义

实例方法、类方法、静态方法的区别:

这三种方法都是保存在类的内存中,调用者不同。实例方法由对象调用,

至少一个self参数,self代表对象的引用。类方法由类调用,至少一个cls参数,

并且需要装饰器@classmethod修饰静态方法由类调用,不需要参数,

需要装饰器@staticmethod修饰

给定两个 list A ,B,请用找出 A ,B 中相同的元素,A ,B 中不同的元素:

A、B 中相同元素:print(set(A)&set(B))

A、B 中不同元素:print(set(A)^set(B))

总结

以上所述是小编给大家介绍的Python高频面试题及其答案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

你可能感兴趣的:(python高频面试题)