Python 如何入门面向对象呢

2022-08-29 23:33:46 +08:00
 shinonome

有看一下 python 面向对象编程指南,内容对于我有点难了, 然后去看了设计模式,有一些收货还是解放迷茫 现在写代码还是那种写一堆函数然后 class 包起来 感觉自己依旧没有丝毫入门对象的迹象 求求大佬指点一下怎么入门对象啊

3882 次点击
所在节点    Python
26 条回复
westoy
2022-08-29 23:57:39 +08:00
多写, 有了具体业务自然会有抽象和复用的需求, 也就自然会明白了, 没需求光看看不明白的
LindsayZhou
2022-08-30 00:05:04 +08:00
找个漂亮的,不太大开源项目啃完。
我现在在看 fastpi/starlette 的源码,fastapi 是从 starlette 继承来的,Route Middleware App 之类的包装个人觉得还可以,只是看起来 fastapi 的作者不太喜欢写注释。
shinonome
2022-08-30 00:12:44 +08:00
@westoy 唔,确实没需求,所以不知道怎么下手,大佬有推荐 简单的项目吗
shinonome
2022-08-30 00:12:54 +08:00
@LindsayZhou 我喵喵,写写大佬
yucongo
2022-08-30 01:06:08 +08:00
写个小 gui 工具差不多就入门面向对象了
LeeReamond
2022-08-30 04:09:13 +08:00
你不需要看设计模式,python 既有全局变量这种东西,又有一等公民函数,又不是写 JAVA
oakcdrom
2022-08-30 07:56:26 +08:00
虽然我也用的少。。。我连 class 都不用。 一切 def
whywaoxaks
2022-08-30 08:05:32 +08:00
看需求。完全没必要强行搞对象。
0x0208v0
2022-08-30 10:08:38 +08:00
同问
HiCode
2022-08-30 11:03:03 +08:00
现有业务,再有针对实际业务需求的抽象,最后才是面向对象的实现。

强行为了面向对象而面向对象,是某些 javaer 的最爱。
anonymousar
2022-08-30 11:12:04 +08:00
多态 /泛型 是核 xin 内容。 想深入了解还是从 cpp 入手比较好。另外上面这些拿个 class 说面向对象的, 真的写过代码?
DOLLOR
2022-08-30 11:18:46 +08:00
靠 Python 深入面向对象是不太合适的。
如果想深入面向对象的“精髓”,还是靠 Java 比较合适。
当然不必强求面向对象、面向 class 开发,能解决问题才是最重要的。
warcraft1236
2022-08-30 11:36:51 +08:00
看几个 Python 的优秀的库就行了,比如 requests 之类的
arischow
2022-08-30 11:39:04 +08:00
Python 的面向对象还要结合它的 data model 来理解
anjiannian
2022-08-30 11:48:09 +08:00
对,楼上有人说了,看优秀的库,requests ,flask
elboble
2022-08-30 12:38:02 +08:00
看视频学的 django ,学到 restframework ,从 apiview 到 viewset ,一系列抽象,真是看的男默女泪
ospider
2022-08-30 13:52:45 +08:00
@warcraft1236 requests 除了 API 设计,哪方面也和优秀挂不上钩……
shinonome
2022-08-30 15:39:02 +08:00
感谢大家,我去找一点简单的项目了
lanlanye
2022-08-30 15:55:34 +08:00
我觉得简单一点从抽象考虑,如果你需要把一组方法和数据放在一起,那就会自然地使用面向对象,否则别强上,没必要。
ipwx
2022-08-30 16:00:14 +08:00
现在通常所说的设计模式 OOP ,最佳实现模版就是 Java 那一套。当然结果大家都知道了,纯 OOP 单继承的设计模式就是又臭又长,虽然对于规范良莠不齐的团队开发很有用。

Python 一般情况下都不是纯粹的 OOP ,Pythonic 是一种混合了函数式、命令式和 OOP 的特殊形式,形成了它自己特有的写法。一般来说相同的功能,Pythonic 写起来还挺简洁的。——当然,也不绝对。

----

总之按楼主的初学者属性,用 Python 去对照设计模式容易走火入魔。要么忘记“设计模式”去体会 Pythonic ,要么扔掉 Python 去学习设计模式。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/876332

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX