前端转AI · 第2周 | 如果你会ES6 Class,Python面向对象你已经会了80%

开场:一张对照表

先上结论——Python的OOP和JavaScript的OOP,核心概念完全一致,只是语法略有不同:

概念 JavaScript Python
定义类 class Dog {} class Dog:
构造函数 constructor(name) __init__(self, name)
this指针 this.name self.name
继承 class B extends A class B(A):
调用父类 super() super().__init__()

看到了吗?就是换了套皮!

self就是this,但要自己写出来

Python类里每个方法的第一个参数必须是self,这是Python最让前端工程师不爽的地方:

class Developer:
    def __init__(self, name, stack):
        self.name = name      # 就是 this.name = name
        self.stack = stack

    def introduce(self):       # 必须写self!
        return f"我是{self.name},技术栈:{self.stack}"

dev = Developer("龙芳", "React")
print(dev.introduce())

我的吐槽:JavaScript的this虽然指向飘忽不定(经典面试题),但至少不用每次都手动写出来啊!Python的self虽然啰嗦,但好处是——永远不会搞不清this指向谁

装饰器 = HOC(高阶组件)

这是本周最"哇"的发现!Python装饰器的原理,和React的高阶组件一模一样

// React HOC:包装组件,添加额外功能
function withLoading(WrappedComponent) {
    return function(props) {
        if (props.loading) return <Spinner />;
        return <WrappedComponent {...props} />;
    }
}

const EnhancedList = withLoading(UserList);
# Python装饰器:包装函数,添加额外功能
def with_timer(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        result = func(*args, **kwargs)
        print(f"耗时:{time.time()-start:.2f}秒")
        return result
    return wrapper

@with_timer  # 语法糖!等于 fetch_data = with_timer(fetch_data)
def fetch_data():
    # 模拟请求
    time.sleep(1)
    return {"data": "ok"}

本质都是:传入一个东西 → 包一层 → 返回增强版。

这个思维模型一旦建立,你会发现Python装饰器根本不难,因为你早就在React里用过无数次了。

异常处理:try/catch换了个名

# JavaScript
try {
    JSON.parse("invalid json");
} catch (error) {
    console.error("解析失败:", error.message);
} finally {
    console.log("不管成功失败都执行");
}

# Python
try:
    import json
    json.loads("invalid json")
except json.JSONDecodeError as e:
    print(f"解析失败: {e}")
finally:
    print("不管成功失败都执行")

唯一区别:catchexcept。就这?就这。

本周心得

我的感受是:Python和JavaScript是亲兄弟

如果说JavaScript是那个穿潮牌、啥都能干但偶尔不靠谱的弟弟,Python就是那个穿格子衫、沉稳可靠的哥哥。

语法不同,但思想相通。只要你理解了OOP的核心概念(封装、继承、多态),换一门语言就是换套衣服。


下一篇:《Python的async/await:和JS Promise链有什么区别》

如果觉得有帮助,点赞收藏不迷路 👍

更多推荐