免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: tianqio
打印 上一主题 下一主题

python 的特点? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-05-29 22:18 |只看该作者
原帖由 tianqio 于 2008-5-24 23:23 发表
最近用pyhton写了几千行代码,感觉写的代码与java的很相似,没有体会到用python写的快感,当然我没有涉及到函数式编程的方面,相反动态语言使得IDE没法充分做代码的自动补全,让我觉得写代码的速度降低不少,请 ...

可能你太object-oriented了,不够dirty

论坛徽章:
0
12 [报告]
发表于 2008-06-03 17:53 |只看该作者
原帖由 shhgs 于 2008-5-25 23:35 发表
动态插入方法的例子。


import datetime
class Dummy():
    pass
o = Dummy()

o.getTimestamp = lambda : datetime.datetime.now().strftime('%c')

print o.getTimestamp()



这是我所说的俗 ...


看到了LineReceiver,transport,protocol,是twisted的代码?可否拿出来研究以下?

论坛徽章:
0
13 [报告]
发表于 2008-06-03 21:45 |只看该作者
Python

论坛徽章:
0
14 [报告]
发表于 2008-06-04 09:07 |只看该作者
原帖由 chrisyan 于 2008-6-3 17:53 发表


看到了LineReceiver,transport,protocol,是twisted的代码?可否拿出来研究以下?


公司的财产。再说太长了,根本没法讲。

论坛徽章:
0
15 [报告]
发表于 2008-06-04 11:42 |只看该作者
哦,既然是这样,我就问shhgs兄一个困扰了我一段时间的问题吧,前提声明我不太熟悉网络编程,正在补习当中....
一个用twisted的服务器,接受用户的一个请求,可能开始有一个验证,然后会发过来一堆数据,服务器处理后把结果返回。
过程就是最普通的方式,不过我想不太出来如果client发过来的是二进制文件,服务器端怎么来区分数据的开头和结尾呢?因为发送开始和发送之后可能会有一些控制命令,以任何字符做为结尾,都不能保证二进制数据当中肯定没有这样的组合吧?这样就有可能把数据文件解释成控制命令了吧。难道要像sip一样控制流和数据流分开?我前段时间看了看smtp服务器的实现,因为smtp服务器是以\n\r作为控制命令结尾的,但是我也没看出来如果发送附件的时候,它是怎么判断附件已经发送完了的。
另:一般在传二进制数据的时候是用struct模块来做的吧?

如果能解答,不胜感激!!!

论坛徽章:
0
16 [报告]
发表于 2008-06-04 12:11 |只看该作者
binary协议对网络编程来说,一直是个难题。如果你看过The Art of Unix Programming之后,就会理解为什么Internet上这么多成功的协议,都是面向text的,甚至是基于行的了。如果这个协议是你设计的,那么我建议你尽量避免兩进制。如果一定要用,可以在发送发数据之前,预先通知server数据的大小,以及md5的checksum。有了大小之后,server就可以安排窗口,计算流量了。如果这个都不行,那我也不知道了。或许你得一个字节一个字节地数了。

论坛徽章:
0
17 [报告]
发表于 2008-06-04 13:24 |只看该作者
嗯,好的,多谢提点。
这个协议是我来设计的,而且发的东西肯定是二进制的,没有办法用text来发。
那我就按照你所的来做,如果我用tcp来发,就算算md5和数据流大小。
如果用udp来发,那我就每个包都编上号,都算上md5,和数据长度,晕,貌似udp不是一般的烦啊

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:03
18 [报告]
发表于 2008-06-04 14:23 |只看该作者
原帖由 shhgs 于 2008-5-25 04:26 发表
第一,把函数当作参数传。

第二,把方法动态地插入对象或者类里。

第三,运用duck typing的思想。也就是说,不要过分重视类的继承关系,重视类的接口。

第一点比较简单,第二点和第三点相辅相成,属于 ...

___________________________________________________________________________


第一,把函数当作参数传。 可以舉個例子看看嗎?

论坛徽章:
0
19 [报告]
发表于 2008-06-04 16:21 |只看该作者
原帖由 shihyu 于 2008-6-4 14:23 发表

___________________________________________________________________________


第一,把函数当作参数传。 可以舉個例子看看嗎?



在python中万物皆对象,也就是函数也是对象,
不知道这个例子算不算:
import os
type(dir(os))
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP