今天面试被问到 Python 的设计模式,直接给跪了

2015 年 5 月 8 日
 tennix
自己真是孤陋寡闻了,用了快3年的 python 居然不知道还有设计模式一说
10885 次点击
所在节点    程序员
36 条回复
messense
2015 年 5 月 8 日
设计模式当然应该是各种语言都有的吧,只是细节和实现略有不同。Python 倒是不那么强调设计模式吧。

https://github.com/faif/python-patterns
ibigbug
2015 年 5 月 8 日
额,编程至少 3 年居然没听说过设计模式?
maemual
2015 年 5 月 8 日
@ibigbug 楼主的意思应该是,知道设计模式,但是在用 Python 的过程中,没遇到过需要强调设计模式的地方。
halfcrazy
2015 年 5 月 8 日
楼主面的哪家呢?
Septembers
2015 年 5 月 8 日
@messense Python语法糖强大到很少需要设计模式支撑
ibigbug
2015 年 5 月 8 日
@maemual 那就扯呗,面试又不怕扯得多
tcxurun
2015 年 5 月 8 日
推荐楼主一本书,Python编程实战,运用设计模式、并发和程序库创建高质量程序,可惜我是搞java的,python新手,这书看到比较吃力
tennix
2015 年 5 月 8 日
当听到说装饰器是设计模式时,我就彻底无语了,所以就跟他说装饰器就是一个高阶函数,在Haskell、Lisp等函数式编程语言中最自然不过的东西,然后又跟他扯了一堆函数式编程的东西,说得激动了,结果把他说得无语了,所以想想这次肯定跪了
lloovve
2015 年 5 月 8 日
开机 写代码 关机 这个通用模式
ruoyu0088
2015 年 5 月 8 日
<amp-youtube data-videoid="Er5K_nR5lDQ" layout="responsive" width="480" height="270"></amp-youtube>
Septembers
2015 年 5 月 8 日
@tennix 在OOP里decorator pattern的确是个模式
Ryans
2015 年 5 月 8 日
@tcxurun 看起来不错 thanks
RIcter
2015 年 5 月 8 日
非CS專業半路出家設計模式寫得比較吃力,現在就瞭解幾個⋯
virusdefender
2015 年 5 月 8 日
我知道的也就是装饰器,单例模式(创建各种数据库连接的时候常用),订阅模式(django的信号)
riaqn
2015 年 5 月 8 日
设计模式是垃圾语言的标志。。越垃圾的语言设计模式越多。。比如说java。。。
//最近正在写java, 怨念比较大。
xuwenmang
2015 年 5 月 8 日
@riaqn 设计模式跟语言没什么关系吧
phx13ye
2015 年 5 月 8 日
越垃圾,设计模式越多+1

对于python,很多都内建支持
iterator build-in
builder 默认参数
command, strategy,visitor 什么的,fp表示你们一起上,我赶时间
messense
2015 年 5 月 8 日
@Septembers 是很少需要设计模式支撑,但是懂点设计模式可以写出更加 graceful 的代码。(当然像小白用 Java 那样乱用滥用设计模式就是坑了,Java 一生黑.......)
Septembers
2015 年 5 月 8 日
@messense 设计模式 是一种最佳实践的总结 但设计模式不是银弹
neoblackcap
2015 年 5 月 8 日
设计模式是编程语言的补充,比如单例模式或者Python里面的一个变种Borg模式,这些Python自身的语法不提供,此时必然需要程序员自身去实现。

其实大概不是考Python的设计模式吧?其实就是想考楼主你的思考能力,到底遇到一个实际的问题能否将它映射到具体的模型里面

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

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

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

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

© 2021 V2EX