前端学python

会骑自行车学电瓶车,事半功倍!

所以需要注意------迁移,因为知识不是孤岛,多对比,更容易触类旁通。


注意:

在 AI 时代,语法易忘且随时可查,唯有思路永存

列这个表,不是为了背,浏览了好有个映像。表也是ai写的_(ง ˙o˙)ว

项目驱动,当个字典用,就像罗塞塔石碑

一、前端 → Python 知识对照

层级 JavaScript / TypeScript Python 💡 核心思维转换 (One-Liner)
基础语法 let x = 1; (需声明) x = 1 (直接赋值) 去声明化:变量只是标签,贴在对象上,无需定义类型。
; (分号结尾) 无分号 (换行即结束) 视觉减负:缩进决定代码块,分号是多余的噪音。
=== (严格相等) == (值相等) 默认严格 :Python 的 == 就是 JS 的 ===is 才是比地址 (===)。
null / undefined None 唯一空值 :不再纠结是"没定义"还是"空对象",只有 None
Hello ${name} f"Hello {name}" 几乎一致 :前缀 f 代表 format,花括号内直接写表达式。
函数逻辑 function foo() {} def foo(): 冒号哲学:函数头末尾加冒号,下一行必须缩进。
() => {} (箭头函数) lambda x: x 轻量级lambda 仅限单行表达式,复杂逻辑请用 def
arguments 对象 *args, **kwargs 显式解包:不再隐式获取参数,而是显式声明接收剩余参数。
数据结构 [] (Array) [] (List) 动态数组 :Python List 可混存不同类型,方法名略有不同 (pushappend)。
new Set() set() 去重集合 :支持数学集合运算 (交集 &, 并集 `
{} (Object/Map) {} (Dict) 哈希映射:Key 必须是不可变类型 (字符串/数字/元组),不能是对象/列表。
obj.key / obj['key'] dict['key'] 访问差异 :字典只能用 [] 访问;若想用 . 访问需用 dataclass 或对象。
tuple (无原生,靠约定) () (Tuple) 不可变列表:常用作字典的 Key 或函数返回多值。
面向对象 class A extends B class A(B): 括号继承:继承写在类名后的括号里,同样支持多继承。
constructor() __init__(self) 构造初始化self 必须显式作为第一个参数传入(这是最大的习惯障碍)。
this self 显式自我 :没有隐含的 this,每个实例方法都要明确写 self
get/set accessor @property 装饰器属性 :用 @property 把方法伪装成属性调用,优雅且符合 Pythonic。
模块系统 import ... from ... import ... / from ... import ... 文件即模块 :一个 .py 文件就是一个模块,文件夹是包 (需 __init__.py)。
module.exports __all__ (可选) 默认全公开 :默认所有定义都可被导入,想用 * 导入需配置 __all__
异步编程 async/await + EventLoop async/await + asyncio 语法同,内核异:JS 是单线程非阻塞;Python 有 GIL,异步主要用于 IO 密集型。
Promise.all() asyncio.gather() 并发执行:概念完全对应,用于同时发起多个异步任务。
高阶特性 @decorator (Babel/TS) @decorator (原生支持) 一等公民:装饰器是 Python 的核心特性,用于日志、权限、缓存等横切关注点。
Proxy / Reflect __getattr__, __setattr__ 魔术方法:通过双下划线方法拦截属性访问,实现动态行为(元编程)。
原型链 (__proto__) MRO (C3 线性化) 继承顺序:多继承时,Python 有明确的解析顺序算法,比 JS 原型链更可控。
运行环境 V8 JIT (多线程真并行) GIL (全局解释器锁) 并发陷阱 :CPU 密集型任务多线程无效,需用 multiprocessing (多进程)。
npm / yarn pip / poetry 包管理requirements.txt 类似 package.json,虚拟环境 (venv) 类似 node_modules 隔离。

二、3个核心

1. 缩进即正义

  • JS用{}区分代码块,Python用4空格缩进

  • 建议:编辑器装 indent-rainbow 插件,视觉上区分缩进层级(pycharm-设置-插件库里搜的到)

2. Self 显式化

  • Python类方法第一个参数必须是self(显式传)

  • 调用时不用写:obj.method() 自动把obj传给self

python 复制代码
# ❌ 错误
def eat(self): pass 
# ✅ 正确
def eat(self): 
    print(f"{self.name} is eating")
python 复制代码
# Python
class Car:
    def drive(self, speed):      # ← 定义时:self 必须显式写
        print(f"{self.name} 车速 {speed}")

my_car = Car("宝马")

my_car.drive(60)                 # ← 调用时:只传 speed,self 自动传
# 实际等价于:Car.drive(my_car, 60)
javascript 复制代码
// JavaScript
class Car {
    drive(speed) {               // ← 没有 this 参数
        console.log(this.name);
    }
}

myCar.drive(60);                 // ← this 隐式绑定,但容易丢

3. 内置强大

  • JS : 想要处理日期?装 dayjs。想要发请求?装 axios。想要操作文件?找第三方库。
  • Python : 标准库极其强大
    • 处理日期时间 → datetime (内置)
    • 发 HTTP 请求 → urllib (内置,虽然大家爱用 requests)
    • 操作 JSON → json (内置)
    • 正则表达式 → re (内置)
    • 文件系统 → os, pathlib (内置)
  • 策略: 遇到问题先想"标准库有没有",再想"pip install 什么"。
相关推荐
提子拌饭1336 分钟前
个人月事记录表应用 - 鸿蒙PC Electron框架完整实现指南
前端·javascript·华为·electron·前端框架·开源·鸿蒙系统
人道领域12 分钟前
【LeetCode刷题日记】131.分割回文串,动态规划优化
java·开发语言·leetcode
YHL15 分钟前
📚 JS执行机制(执行上下文 + 调用栈 + 编译流程)
前端·javascript
不简说20 分钟前
这次真香!sv-print 可视化打印设计器更新:插件脚手架、Excel 导出、弹窗 API 三连发
前端·javascript·前端框架
z落落24 分钟前
C# 接口 interface (多接口实现、类+接口、成员重名)
java·开发语言
无聊的老谢24 分钟前
Web GIS 最佳实践:Vue 集成 Leaflet/OpenLayers 实现基站海量点位渲染
前端·javascript·vue.js
yingyima28 分钟前
GCP Cloud Scheduler 核心语法与实战示例速查手册
前端
用户573501072520629 分钟前
Elpis 项目阶段性总结 - 基于 vue3 完成领域模型架构建设
前端
假如让我当三天老蒯35 分钟前
为什么 setData 能获取到 prev 参数?(自学用)
前端·react.js
张高兴41 分钟前
张高兴的 Hailo-10 开发指南:(二)使用 LangChain 搭建本地大模型 RAG 问答应用
python·边缘计算·hailo