关于Python学习,说点个人意见。

cpunion 2004-08-26 02:23:06
看了很多朋友在一起讨论Python的优雅(这个偶也看到了),不过好像都不在大项目中使用,感觉遗憾呀。

前几天我说过,我们项目经理在新加坡的一个“支持视频的在线游戏”项目中,用Python做了服务器,速度要求高的核心部分用C做扩展。

今天看到了他们那个服务器的Python源码,一看吓一跳。

大家讨论的Python代码的优雅,在他们这个项目中完全看不到,满眼的C、C++风格的Python代码,丑死~跟蔡学镛那段代码差不多。

不过让我感慨良多啊,人家只要会一些语法就用它来做项目,我们呢?很多人学得很深入了,结果却总说它不适合拿来做大项目。我们在等什么啊?


人家学东西是拿来用的,我们是拿来看的。

说完了。下面把昨天 xyzxyz1111(如是我闻) 老兄回答我的一个问题贴上来,大家共赏:

问题是,如何做到下面这个功能?

a='abcdefg'
for x,y,z in a:
print x,y,z
要求打印出:
a b c
d e f
g None None

xyzxyz1111(如是我闻) 给我的回复:
class ItemIter:
def __init__(self, l, n = 3):
if type(l) in (type(''), type(u'')):
self.lElement = [c for c in l]
else:
self.lElement = l
self.number = n

def __iter__(self):
if self.number <= 1:
return self.lElement.__iter__()
else:
self.idx = - self.number
return self
def next(self):
self.idx += self.number
lRet = self.lElement[self.idx:self.idx+self.number]
if len(lRet) == 0:
raise StopIteration()
lRet += [None for x in range(self.number-len(lRet)) ]
return lRet

a='abcdefg'
for x,y,z in ItemIter(a, 3):
print x,y,z

他这个类很好哦,个数不限,还可以这么用:
a='abcdefg'
for x,y,z,w in ItemIter(a, 4):
print x,y,z,w
还是咱中国人聪明呀,问了个老外他没回答出来。。KKKK偷笑。。老外看了这代码说“太棒了”。知道这老外为什么说中文吗?因为他是新加坡人。KKKK
...全文
173 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SeeMin 2004-08-30
  • 打赏
  • 举报
回复
是阿,说得太对了。。。。。。学以致用
qunluo 2004-08-28
  • 打赏
  • 举报
回复
说到点子上了!
#######################
人家学东西是拿来用的,我们是拿来看的。
albertlee 2004-08-27
  • 打赏
  • 举报
回复
说的有理,我的这个项目就毫不犹豫地开始用 Python 了。
playing5460 2004-08-27
  • 打赏
  • 举报
回复


外国人很会做项目
ncslsxgzxx 2004-08-26
  • 打赏
  • 举报
回复
说得有理啊
Programmerjacinth 2004-08-26
  • 打赏
  • 举报
回复
人家学东西是拿来用的,我们是拿来看的。

汲取教训!

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧