Python 中使用类的最佳时刻是什么?

2014-07-30 22:18:56 +08:00
 kzing
事情由来:
1. 写一个 rest 接口异步发送短信认证码
2. 我将整个接口封装在了一个类里.
3. 但我们老大说这样的实现太啰嗦, 于是去掉了类, 直接将所有函数直接暴露在最顶层.
4. ... ...

看过许多开源代码都是以类为单位组织的, 那是不是意味着:
1. 当我们需要实现某个功能的时候, 最好都是以类来组织呢?
2. 如果暂且不考虑类的其它特性, 仅考虑它作为一个函数的整合, 它是不是优于直接在模块顶层定义函数呢?
5183 次点击
所在节点    Python
10 条回复
mengzhuo
2014-07-30 22:58:19 +08:00
写了2年Python,我现在的做法是,
刚开始的时候都散着,需要复用的时候再封装

这么做是因为web开发中,
很多功能都是逗逼的产品经理/某部门头头拍脑袋想出来的,没准再也不会有人用的
hahastudio
2014-07-30 23:21:55 +08:00
因为 Python 并不是强制面向对象的,所以很多时候会有这样的疑问。
这里我找到了一篇文章:When should I use classes?
虽然是 04 年的,但也有些帮助:
http://kentsjohnson.com/stories/00014.html

我个人的意见:
顶大了两个函数,暴露在顶层,去实现同一个功能,而且这个功能一般也就是辅助工具向的,不会承载很大的业务逻辑
看上去你说的貌似不只两个,如果这些函数再需要一些共用的上下文的话= =妥妥的包装成类啊= =
ipconfiger
2014-07-30 23:22:59 +08:00
你可以这么认为,一个.py文件就是一个singleton的类
csx163
2014-07-30 23:43:34 +08:00
要给别人套着用的时候.... 以后用得着的时候...
freefcw
2014-07-31 00:12:46 +08:00
ffffwh
2014-07-31 02:02:31 +08:00
在需要多态的时候
ddzz
2014-07-31 09:14:02 +08:00
python一个文件就是一个命名空间,一个文件夹加上一个__init__.py就是一个包,不要用java的思维来衡量python。python的命名空间是做的最好的
heqing
2014-07-31 11:36:17 +08:00
两个以上的函数,之间有数据共享,就应该使用类来封装;借用《C++深思录》中一句话,用类来表示概念。
kzing
2014-07-31 20:34:10 +08:00
@heqing 恩, 当遇到多个数据复用时, 的确用类比较好.
adoraj
2014-08-05 16:17:19 +08:00
@mengzhuo 说的太经典的,赞一个。

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

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

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

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

© 2021 V2EX