从0.1开始学Python——[1]

发布于:2023-01-18 ⋅ 阅读:(472) ⋅ 点赞:(0)

从0.1开始学Python——[1]

前言

大家好,我是一名即将步入研二的社畜。由于研究方向相较于本科专业发生了较大的调整,我不得不需要熟练地掌握Python,以保证我可以看懂,修改和编写代码。在此之前,我只学过VB,自学过一点点C语言皮毛和Python语言入门教程,因此我需要通过进一步学习Python教程和面向对象等内容来掌握Python语言,而且这对我来说可以说是比较陌生和困难的,所以我称之为从0.1开始学Python。大家的学习情况和基础都不一样,所以我自己学习的内容和进度仅供参考和交流。希望我们能共同进步。什么?为什么研一不学?别问,问就是有别的要忙[doge]。

命名空间

命名空间(Namespace)是从名称到对象的映射,大部分的命名空间都是通过 Python 字典来实现的。命名空间提供了在项目中避免名字冲突的一种方法。各个命名空间是独立的,没有任何关系的,所以一个命名空间中不能有重名,但不同的命名空间是可以重名而没有任何影响。(摘自菜鸟教程)

这里命名规则就和我的电脑随便一个盘里面建文件夹和文件一样。比如两个文件夹不让同名,但是两个文件夹里面都可以有名字为“suck”的文件。

一般有三种命名空间:

内置名称(built-in names), Python 语言内置的名称,比如函数名 abs、char 和异常名称 BaseException、Exception 等等。
全局名称(global names),模块中定义的名称,记录了模块的变量,包括函数、类、其它导入的模块、模块级的变量和常量。
局部名称(local names),函数中定义的名称,记录了函数的变量,包括函数的参数和局部定义的变量。(类中定义的也是)(摘自菜鸟教程)

三者关系是内置包含全局包含局部。而要使用某变量的时候,Python是从小到大的顺序查找这个变量,即 局部命名空间 -> 全局命名空间 -> 内置命名空间 的顺序。

作用域

作用域就是一个 Python 程序可以直接访问命名空间的正文区域。

在一个 python 程序中,直接访问一个变量,会从内到外依次访问所有的作用域直到找到,否则会报未定义的错误。

Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。

变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python 的作用域一共有4种,分别是:

各个作用域以及访问顺序
(引自菜鸟教程)

局部变量和全局变量

定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。

局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。如下实例:

total = 0 # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
    #返回2个参数的和."
    total = arg1 + arg2 # total在这里是局部变量.
    print ("函数内是局部变量 : ", total)
    return total
 
#调用sum函数
sum( 10, 20 )
print ("函数外是全局变量 : ", total)

结果:

函数内是局部变量 :  30
函数外是全局变量 :  0

(引用自菜鸟教程)

根据命名空间的规则,这里两个total也是不一样的东西,但是可以同名。

好了不学了累了,真是充实的一天[doge]。

本文含有隐藏内容,请 开通VIP 后查看