• 最强Python面试题之Python基础题


    1、Python 中的作用域?

    Python 中,一个变量的作用域总是由在代码中被赋值的地方所决定。当 Python 遇到一个变量的话它会按照这的顺序进行搜索:

    本地作用域(Local)--->当前作用域被嵌入的本地作用域(Enclosing locals)--->全局/模块作用域
    (Global)--->内置作用域(Built-in)。

    2、什么是 Python 自省?

    Python 自省是 Python 具有的一种能力,使程序员面向对象的语言所写的程序在运行时,能够获得对象的类 Python 型。

    Python 是一种解释型语言,为程序员提供了极大的灵活性和控制力。

    3、什么是 Python 的命名空间?

    命名空间,又名 namesapce,是在很多的编程语言中都会出现的术语,趁着这个题顺便给大家仔细介绍一下。

    全局变量 & 局部变量

    全局变量和局部变量是我们理解命名空间的开始,我们先来看一段代码:

    1

    2

    3

    4

    5

    6

    7

    x = 2

    def func():

       x = 3

       print('func x ---> ',x)

    func()

    print('out of func x ---> ',x)

    这段代码输出的结果如下:

    1

    2

    func x ---> 3

    out of func x ---> 2

    从上述的结果中可以看出,运行 func(),输出的是 func() 里面的变量 x 所引用的对象 3,之后执行的是代码中的最后一行。这里要区分清楚,前一个 x 输出的是函数内部的变量 x,后一个 x 输出的是函数外的变量 x,两个变量互相不影响,在各自的作用域中起作用。

    那个只在函数内起作用的变量就叫 “局部变量”,有了 “局部” 就有相应的 “全部”,但是后者听起来有歧义,所以就叫了 “全局”。

    1

    2

    3

    4

    5

    6

    7

    x = 2

    def func():

       global x = 3 #注意此处

       print('func x ---> ',x)

    func()

    print('out of func x ---> ',x)

    这段代码中比上段代码多加了一个 global x,这句话的意思是在声明 x 是全局变量,通俗点说就是这个 x 和 函数外的 x 是同一个了,所以结果就成了下面这样:

    1

    2

    func x ---> 3

    out of func x ---> 3

    这样乍一看好像全局变量好强,可以管着函数内外,但是我们还是要注意,全局变量还是谨慎使用的好,因为毕竟内外有别,不要带来混乱。

    作用域

    作用域,用比较直白的方式来说,就是程序中变量与对象存在关联的那段程序,比如我在上面说的, x = 2 和 x = 3 是在两个不同的作用域中。

    通常的,作用域是被分为静态作用域和动态作用域,虽然我们说 Python 是动态语言,但是它的作用域属于静态作用域&#x

  • 相关阅读:
    基于51单片机的计件器设计
    【计算机网络_应用层】协议定制&序列化反序列化
    Flutter笔记:序列化与反序列化
    golang 指针变量赋值
    【数据结构与算法】之深入解析“安排邮筒”的求解思路与算法示例
    【C++】并查集
    捷报频传!苏州箱讯荣获2023年江苏省物流产业服务贡献奖
    Day722. 空指针烦恼 -Java8后最重要新特性
    【LVGL】弹性布局(Flex)学习
    python-pandas用法大全
  • 原文地址:https://blog.csdn.net/m0_72444380/article/details/126917216