Python基础简答题

1.命名空间和作用域的关系

**答:**命名空间定义了在某个作用域内变量名和绑定值之间的对应关系,命名空间是键值对的集合,变量名与值是一一对应关系。作用域定义了命名空间中的变量能够在多大范围内起作用。

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

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

    def outer(f):
    def inner():
        print("**********")
        f()
        print("**********")
    return inner
 @outer
 def func():
     print("华晨宇的演唱会")
 fun()
        

3.、闭包的形成要件是什么

**答:**闭包函数必须有内嵌函数、内嵌函数必须要引用外层函数的变量、闭包函数返回内嵌函数的地址(函数名称)

4.简述try、except语句的用法

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

5.简述read. readline. readlines的区别

答:
read会一次性读取文件的全部内容
readline 每次读取一行,并且自带换行功,每一行末尾会读到\n
Readlines 一次性以行的形式读取文件的所有内容并返回一个list,需要去遍历读出来

6.简述深拷贝和浅拷贝

答:
浅拷贝:对内存地址的复制,让目标对象指针和源对象指向同一片内存空间。
深拷贝:拷贝对象的具体内容,二内存地址是自主分配的,拷贝结束之后俩个对象虽然存的值是一样的,但是内存地址不一样,俩个对象页互相不影响,互不干涉

7.简述python中类方法和静态方法

答:
类方法是类对象的方法,在定义时需要在上方使用“@classmethod”进行装饰,形参为 cls,表示类对象,类对象和实例对象都可调用。
静态方法是一个任意函数,在其上方使用“@staticmethod”进行装饰,可以用对象直接调用,静态方法实际上跟该类没有太大关系。

8.请简述你对面向对象的理解

答:
在编写代码时只写框架思路,具体实现还未编写就可以用 pass 进行占位,使程序不报错,不会进面向对象的编程,简称:OOP,是一种编程的思想。OOP把对象当成一个程序的基本单元,一个对象包含了数据和操作数据的函数。面向对象的出现极大的提高了编程的效率,使其编程的重用性增高。
python面向对象的重要术语:
  1.多态(polymorphism):一个函数有多种表现形式,调用一个方法有多种形式,但是表现出的方法是不一样的。
  2.继承(inheritance)子项继承父项的某些功能,在程序中表现某种联系
  3.封装(encapsulation)把需要重用的函数或者功能封装,方便其他程序直接调用
  4.类:对具有相同数据或者方法的一组对象的集合
  5.对象:对象是一个类的具体事例

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

答:
类属性和实例属性的区别:
在Python中一切皆对象,类是一个特殊的对象即类对象,描述类的属性称为类属性,它属于类。类属性在内存中只有一份,所有实例对象公用,在__init__外部定义。
实例属性:用来描述类创建出来的实例对象,需要通过对象来访问,在各自对象的内存中都保存一份,在__init__方法内部定义
实例方法、类方法、静态方法的区别:
这三种方法都是保存在类的内存中,调用者不同。
实例方法由对象调用,至少一个self参数,self代表对象的引用。
类方法由类调用,至少一个cls参数,并且需要装饰器@classmethod修饰
静态方法由类调用,不需要参数,需要装饰器@staticmethod修饰

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

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

你可能感兴趣的:(Python基础简答题)