Python与接口
聊聊,我一直不是很理解为什么动态语言就不需要接口,我只是从建模的角度考虑,接口是一种合理的建模方式呀,特别是大的项目,而且代码容易维护。相比接口多重继承是一种很糟糕的方式。为什么动态语言就不需要接口,为什么Python会放弃实现接口?那么一个接口的典型应用(好几个基本不相关的很复杂的类拥有少量的共有属性和方法)在Python中如何实现和管理代码,最好举一下例子吧。
这个在python中一般是直接通过使用同名函数或变量来实现的。因为是动态语言,这些方法或变量不一定非要在定义的时候就全部实现或申明,可以在运行时直接根据数据生成相应的函数或方法。
比如:python中有sys.stdout这么一个变量。这个变量是什么呢?不知道,但是,这个 sys.stdout只要实现了write方法就行。也就是说,不管你把什么值斌给sys.stdout,只要可以对它进行下面这样的操作就行。
sys.stdout.write("string to output")
正常情况下,sys.stdout是一个标准输出设备的文件对象,所以有write 方法。但是,如果你需要,你可以将输出定向到其它地方,比如通过网络发出去。你可以随意改它,只要能write就行了。这样的好处是代码编写效率高可读性也不差。例如:
我想让程序在执行某些代码过程中不输出任何信息怎么办?简单
class FakeStdout():
def write(self, string):
pass # Do nothing
old_out = sys.stdout
sys.stdout = FakeStdout()
... Do things that may print something
sys.stdout = old_out # restore stdout
你可以看得出来,没有接口,但逻辑依然清析,而且简单。如果你想让上面的FakeSt
相关问答:
我每次上传的文件读到的数据都不正确。2M 的图片读得10多K 。。哪位大侠可以帮帮我啊。
#!D:\ProgrammerTools\python26\python.exe
#encoding=utf-8
import cgitb
import os
cgitb.enable()
import cgi,urllib ......
在文本文件中匹配项包含中文
如内容为:gamename=中文
key=天下
文本文件的编码的文件为utf-8
python代码如下:
# -*- coding:UTF-8 -*-
contents=open(from_pa ......
C#里面用using System.Security.Cryptography; RSACryptoServiceProvider加密过的消息
用Python Crypto中RSA的方法 能直接 解吗?
RSA加密方式不是统一的吗?需要注意些什么?
有帮助。但是没解决问题。。。
......
map,filter方法应该会返回一个列表。
但是在我这里,它们总是返回:
<map object at 0x0000000002A2C978>
<filter object at 0x0000000002A2C9E8>
我用的python3.1, 这个也是版本的变动导致的吗? ......
谁有python django 开发的程序 或者知道哪有
告诉下 我要一个开源的程序学习用 感觉自己编程很不规范
点击查看《Django Web 开发指南》
http://www.ibm.com/developerworks/cn/linux/l-django/
你说的是dj ......