Skip to content

Commit 30cd85e

Browse files
author
sky.sun
committed
doc: 基础概念
1 parent 3aed10e commit 30cd85e

1 file changed

Lines changed: 105 additions & 47 deletions

File tree

docs/guide/syntax.md

Lines changed: 105 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,106 @@ print("交换后:", a, b)
126126

127127
**关于常量的约定**:虽然 Python 没有`const`关键字,但社区约定使用全大写的变量名来表示常量,比如`MAX_SIZE = 100``PI = 3.14159`。这是一个约定俗成的规则,虽然这些"常量"在技术上仍然可以被修改。
128128

129+
## 命名规范
130+
131+
JavaScript 社区广泛采用驼峰式命名(camelCase)作为变量命名规范,这已经成为前端开发的标准:
132+
133+
```javascript runner
134+
// JavaScript 的驼峰式命名
135+
let userName = "张三";
136+
let userAge = 25;
137+
let isLoggedIn = true;
138+
let maxRetryCount = 3;
139+
140+
console.log(userName, userAge, isLoggedIn, maxRetryCount);
141+
142+
// 对象属性也使用驼峰式
143+
const userInfo = {
144+
firstName: "",
145+
lastName: "",
146+
emailAddress: "zhangsan@example.com"
147+
};
148+
149+
console.log(userInfo);
150+
```
151+
152+
Python 社区则偏好蛇形式命名(snake_case),这被写入了 PEP 8 官方编码规范中:
153+
154+
```python runner
155+
# Python 的蛇形式命名
156+
user_name = "张三"
157+
user_age = 25
158+
is_logged_in = True
159+
max_retry_count = 3
160+
161+
print(user_name, user_age, is_logged_in, max_retry_count)
162+
163+
# 字典键也通常使用蛇形式
164+
user_info = {
165+
"first_name": "",
166+
"last_name": "",
167+
"email_address": "zhangsan@example.com"
168+
}
169+
170+
print(user_info)
171+
```
172+
173+
**Python 命名规范的细节**
174+
175+
需要注意的是,Python 的命名规范并不是完全统一的蛇形式。实际上存在几个不同的层次:
176+
177+
```python runner
178+
# 1. 用户自定义的变量和函数:snake_case
179+
my_variable = "用户定义变量"
180+
def my_function():
181+
return "用户定义函数"
182+
183+
# 2. 类名:PascalCase
184+
class MyClass:
185+
pass
186+
187+
# 3. 常量:UPPER_CASE
188+
MAX_CONNECTIONS = 100
189+
190+
# 4. 内置方法:很多使用驼峰命名(历史原因)
191+
text = "Hello World"
192+
print("字符串内置方法示例:")
193+
print("isdigit():", "123".isdigit()) # 驼峰命名
194+
print("isalpha():", "abc".isalpha()) # 驼峰命名
195+
print("startswith():", text.startswith("Hello")) # 驼峰命名
196+
print("endswith():", text.endswith("World")) # 驼峰命名
197+
198+
# 5. 特殊方法:双下划线包围
199+
class Example:
200+
def __init__(self): # 特殊方法
201+
pass
202+
203+
def __str__(self): # 特殊方法
204+
return "示例对象"
205+
206+
print("类示例:", Example())
207+
```
208+
209+
**为什么 Python 的内置方法使用驼峰命名?**
210+
211+
这是历史原因造成的。Python 早期受到了其他语言的影响,很多内置方法沿用了驼峰命名。随着语言的发展,PEP 8 规范确立了蛇形式命名的偏好,但为了向后兼容,内置方法的命名没有改变。现在的规则是:
212+
213+
- **新的用户代码**:遵循 PEP 8,使用蛇形式
214+
- **内置方法**:保持现有的驼峰命名以确保兼容性
215+
- **第三方库**:大多数遵循 PEP 8,但也有例外
216+
217+
```python runner
218+
# 对比展示
219+
def check_user_input(text): # 用户函数:蛇形式
220+
return text.isdigit() # 内置方法:驼峰式
221+
222+
user_input = "12345"
223+
is_number = check_user_input(user_input)
224+
print(f"输入 '{user_input}' 是数字: {is_number}")
225+
226+
# 这种混合使用在 Python 中是正常的
227+
```
228+
129229
## 注释
130230

131231
JavaScript 开发者熟悉两种主要的注释方式:单行的`//`和多行的`/* */`。JSDoc 风格的注释更是前端开发中不可或缺的文档化工具:
@@ -255,60 +355,18 @@ print(long_string)
255355

256356
**最佳实践建议**:Python 强烈鼓励一行写一个语句的风格,这让代码逻辑更清晰,也更容易调试。这种约束看起来可能限制了灵活性,但实际上能让代码质量显著提升。
257357

258-
## 代码执行方式
259-
260-
JavaScript 开发者熟悉多种代码执行环境:浏览器控制台、网页 script 标签、Node.js 脚本文件。Python 的执行方式更加统一简洁。
261-
262-
**JavaScript 的执行环境**
263-
264-
```javascript runner
265-
// 浏览器控制台或 Node.js
266-
console.log("Hello, World!");
267-
```
268-
269-
```html
270-
<!-- 网页中的 script 标签 -->
271-
<script>
272-
console.log("Hello, World!");
273-
</script>
274-
```
275-
276-
**Python 的执行方式**
277-
278-
Python 主要有两种执行方式,都使用统一的 Python 解释器:
279-
280-
1. **交互式解释器(REPL)**:类似浏览器控制台,在终端输入`python`进入交互模式
281-
282-
```python runner
283-
print("Hello, World!")
284-
# 在 REPL 中可以逐行输入和执行
285-
```
286-
287-
2. **脚本文件执行**:创建`.py`文件,然后在终端运行`python filename.py`
288-
289-
```python runner
290-
# 保存为 hello.py,然后运行:python hello.py
291-
print("Hello, World!")
292-
```
293-
294-
**Python 执行环境的优势**
295-
296-
相比 JavaScript 需要不同的运行环境,Python 的优势在于:
297358

298-
- **环境统一**:同样的代码在不同平台行为一致
299-
- **工具丰富**:Python 解释器自带大量标准库
300-
- **学习简单**:不需要考虑浏览器兼容性等复杂问题
301359

302360
## 小结
303361

304-
Python 基础概念体现了"优雅胜过丑陋,明了胜过晦涩"的核心理念:
362+
Python 基础语法概念体现了"优雅胜过丑陋,明了胜过晦涩"的核心理念:
305363

306364
1. **缩进定义代码块**:使用 4 个空格缩进,强制保持代码整洁,提高可读性
307365
2. **变量赋值简洁**:无需声明关键字,直接赋值创建变量,支持多重赋值和元组解包
308-
3. **注释系统丰富**`#`号单行注释,docstring 文档字符串提供运行时可访问的文档
309-
4. **语句结束清晰**换行即表示语句结束,必要时可用反斜杠或括号进行续行
310-
5. **执行方式统一**交互式 REPL 和脚本文件执行,环境一致性好
366+
3. **命名规范统一**采用 snake_case 蛇形式命名,不同类型标识符有不同约定,与内置方法的历史驼峰命名共存
367+
4. **注释系统丰富**`#`号单行注释,docstring 文档字符串提供运行时可访问的文档
368+
5. **语句结束清晰**换行即表示语句结束,必要时可用反斜杠或括号进行续行
311369
6. **文档字符串特色**:三重引号 docstring 是语言内置特性,支持运行时访问和工具生成文档
312370

313-
Python 的设计哲学强制开发者编写整洁、可读的代码,这种"约束"实际上提高了代码质量和团队协作效率。掌握这些基础概念,是编写优秀 Python 代码的第一步。
371+
Python 的设计哲学强制开发者编写整洁、可读的代码,这种"约束"实际上提高了代码质量和团队协作效率。掌握这些基础语法概念,是编写优秀 Python 代码的第一步。
314372

0 commit comments

Comments
 (0)