Python变量
一、变量的定义
什么是变量:变量是用于存储数据的容器,可以通过变量名来引用存储的值,直白一点就是变量代表了一个值,我们可以通过变量存储和获取值。
基本特点
- 不需要显示声明类型,编译器会通过赋值进行类型推断
- 同一个变量名在声明以后,可以被赋值不同类型的值
命名规则
- 变量名只能包含:字母(a-z, A-Z)、数字(0-9)、下划线(_)
- 首字母只能以字母或下划线开头,不能以数字开头
- 区分大小写
name和NAME表示不同的变量 - 不能使用
Python关键字,可以通过使用keyword.kwlist获取当前版本Python的保留关键字
1 | |
建议的命名
| 类型 | 命名约定 | 示例 |
|---|---|---|
| 变量 | snake_case(小写下划线) | student_name, total_score |
| 函数 | snake_case(小写下划线) | get_user_info(), calculate_total() |
| 类名 | PascalCase(大驼峰) | StudentInfo, DataProcessor |
| 常量 | UPPER_CASE(全大写) | MAX_SIZE, DEFAULT_TIMEOUT |
| 模块 | snake_case(小写下划线) | my_module.py |
| 包名 | snake_case(全小写) | my_package/ |
二、局部变量与全局变量
1、局部变量
定义位置:定义在函数内部的变量
作用域:只在定义它的函数内部生效
生命周期:函数调用时创建,函数结束时销毁
访问权限:只能在函数内部访问
1 | |
2、全局变量
定义位置:函数外部,模块顶层
作用域:在整个模块中有效
生命周期:程序运行时创建,程序结束时销毁
访问权限:可以在任何地方访问
1 | |
2.1 同名遮蔽(Shadowing)
如果全局有一个变量 a,函数里也定义了 a,局部变量 不会修改 全局变量,仅在函数内遮蔽它
1 | |
2.2 全局变量的修改
对全局变量的修改,需要借助关键字 global 完成,如果在修改全局变量时没有使用global 会发生错误。
语法:
1 | |
错误示例:
1 | |
报错:
1 | |
正确示例:
1 | |
全局变量的滥用容易导致以下问题:
增加代码耦合度
增加非预期状态改变的风险
让调试变难
三、常量
常量:一种特殊的变量,在程序整个生命周期中值不会发生改变,例如:数学的 π 。不过,Python 语言无法像Java等语言一样,通过const或final关键字来声明变量为常量,限制代码对变量的修改。
命名风格:全大写字母 + 下划线,以此种方式声明变量预期是一个常量,不应该被修改
常量的访问和变量是相同的,可以直接访问,只是声明为常量以后,不应该去修改它
1 | |