前端学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 什么"。
相关推荐
里欧跑得慢1 小时前
微交互设计模式:提升用户体验的细节之美
前端·css·flutter·web
xiao阿娜的妙妙屋11 小时前
做知识视频效率提升10倍!知识博主用什么AI工具做知识视频?我的答案是即梦Seedance 2.0
前端
YJlio2 小时前
1 1.2 Windows 账户的分类:管理员 / 标准 / 来宾 + 微软账户 vs 本地账户
人工智能·python·microsoft·ai·chatgpt·openai·agent
FOREVER-Q2 小时前
基于 Vite 的前端 SDK 工程化设计与模块化构建实践
开发语言·前端·javascript
invicinble2 小时前
java面向对象的学习主线
java·开发语言·学习
SDAU20052 小时前
Arduino编程CH552
c语言·开发语言·单片机
篮子里的玫瑰2 小时前
Python与网络爬虫——列表与元组
开发语言·爬虫·python
桌面运维家2 小时前
vDisk虚拟磁盘隐藏指定系统操作指南
java·开发语言
stringwu2 小时前
Flutter GetX 核心坑及架构选型与可替换性方案
前端·flutter