Python中是把变量作为成员变量好还是作为参数传递

这是给一位LZ的回答。我觉得挺典型,在面向对象应该经常碰到。就粘贴了一遍。

LZ的内容:

class xx:
def __int__(self):
self.var = []
self.run(self.var)
def run(self, var):
do_sth_with_var

class xx:
def __int__(self):
self.var = []
def run(self):
do_sth_with_self.var

快。

是不是第一种方法省去了在类空间里寻找变量所以会快些?不知大家有什么看法。

Read the rest of this entry »

MM在QQ上给我回的话一

忙着看资料,回MM的QQ慢了。
MM问:在干嘛,
我说:在看资料。
MM追问:你在看什么资料。
我回了句:老大,我能看什么资料。
MM回了我三句话:
关注你的动态~
把握你的行踪~
了解你的想法~

很好很押韵!……

2008周华健上海演唱会

9/20去看的,下午的时候还下了小雨,到了演唱会就没下啦。用“Love Radio”的话来说,听周华健的歌长大的,我到还好,不完全是啦。但周华健的老歌还是很喜欢听的。

在家拍的演唱会的票子(华健演唱会结束说了,一定要保存好票根,有些东西他要还给我们。(*^__^*)莫非是下次免费观看”)
演出会的票

这张是正好放烟花的时候拍到的,天空中可以看到散开的烟火,挺美的。
燃放烟花

舞台的全景图,灯光都亮了。也是这次演唱会的主题《站在屋顶上》。因为舞台左右都是屋顶,(*^__^*),纯写意!

舞台的全景

更多>>

VS2008快捷键

应德军兄要求,说写一篇关于快捷键的介绍的。要求比较有创意,至少也要有新意。(*^__^*),煞是觉得不好写。
公司刚升级到VS2008,其快捷键大多延用VS2005。所以下面介绍的快捷键VS2005也可以使用。

首先有两个地方需要注意的。
1:工具->自定义->”在屏幕提示中显示快捷键” 需要勾选上,方便记忆快捷键。默认设置就是这样的。
2:工具->导入导出设置。这里是整个VSStudio的环境的默认设置,我下面设计的都是在”C#环境”下的快捷键,如果你发现你所使用的快捷键和我所列举的出入很大,请更改正确的环境。

基本情况了解了,故事是这样开始的:
某一周日的早晨起床,突然发现鼠标不见了。可能是隔壁家的猫给抓去了。一时情急,没办法,也只能用键盘来启动VSStudio啦。开始->程序 在一个个查找,要是程序太多,嘿嘿,眼睛都找花啦。还在用这么落后的方式启动IDE吗,用快捷键啊。还是默认的,不用设置。如果要设置也就不英雄嘛。如何 以最快的方式启动IDE呢?开始->运行->输入“devenv”。就可以直接调用VSStudio了。不错吧,再给你列几个常用的。

命令行快速启动
“Inetmgr” IIS管理器,不用到管理里去找了,很快就可以显示IIS管理了
“sqlwb”    快速启动SQL2005企业管理器
“isqlw” 这是SQL2000的我也提供一下吧,这个可以起到SQL2000的查询分析器。
“devenv” 启动相应版本的VS Studio
Read the rest of this entry »

ASP.NET 母版页和内容页的加载顺序的运用

Master 模板页
Content 内容页
如果希望Master页面的数据传给Content页面,请重装OnInit事件进行数据操作
如果希望Content页面的数据传给Master页面,请重载OnLoad事件进行相关数据操作
具体细节不多说了,看下面页面的加载顺序就明白原因

  1. 母版页控件 Init 事件
  2. 内容控件 Init 事件
  3. 母版页 Init 事件
  4. 内容页 Init 事件
  5. 内容页 Load 事件
  6. 母版页 Load 事件
  7. 内容控件 Load 事件
  8. 内容页 PreRender 事件
  9. 母版页 PreRender 事件
  10. 母版页控件 PreRender 事件
  11. 内容控件 PreRender 事件

asp.net输出WML以及相关设置

选择用ASP.NET开发WAP站点,实在简单,就是一个移动控件的运用,根本不用懂WML语法.唯一不同的,就是一个ASPX文件可以支持多个 FORM,不同FORM之间可以切换,最后ASP.NET根据访问的设备,输出不同的内容,如果用IE访问就输出HTML,手机访问,输出WML。

ASP.NET把一些常有的模拟器的配制信息用正则表达式写在Machine.config里,他们只是一个公司的产品:需要下载,配制文件驱动更新:
现在最新版本是请到这里下载:http://www.microsoft.com/downloads/details.aspx?FamilyId=02FA15FE-40D9-4DCE-9BB1-4DD61A5B7CCB&displaylang=en但是,即使驱动更新以后,还是一些备不能访问,这时需要强制输出WML:
在web.config
添加下面内容

<browserCaps>
<result type=”System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”/>
<use var=”HTTP_USER_AGENT”/>
preferredRenderingType = “wml11″
preferredRenderingMime = “text/vnd.wap.wml”
preferredImageMime = “image/vnd.wap.wbmp”
</browserCaps>

py2exe打包pymssql的问题

用了pymssql写了一个读取数据库生成XML的程序。但发现用py2exe打包后的程序不能运行。

最后问题总结是这样的情况

  1. \site-packages\pymssql.py 需要 ntwdblib.dll,所以py2exe生产的应用程序,需要拷贝一下这个ntwdblib.dll。我想py2exe的应该支持拷贝文件的命令。有知道的请留言告诉我一下。
  2. 还需要在py的程序文件加上这么一句,就OK了。
    import  decimal

参考:

http://bbs.chinaunix.net/thread-784061-1-1.html

ul,li控件的封装(menu,list列表)

控件本身没有什么技术含量。只是一个简单的封装。
新项目中前端开发人员专门负责编写html代码。整体看过代码,有很多地方前端人员都使用了ul、li的布局。像Menu、图片列表、商户列表也都是ul、li的形式。所以就写这了个通用的控件。
主要的思路

  1. 尽量减少后端开发人员HTML代码的拼接过程,重点关心数据的读取。
  2. 从HtmlGenericControl继承,这样可以利用很多现有的属性,直接通过base(“ul”)、base(“li”)完成tag的定义,摈弃了原来从webcontrol和control中继承的做法
  3. 从HtmlGenericControl继承,如果有特殊需求的ul、li也肯定能满足需求。我的目的是扩展了几个属性,方便使用和构造相应的数据。
  4. 利用HtmlGenericControl,我不用对CSS,title是否为空进行判断,没有相应了属性控件自然就不输出了。这比手动拼接HTML有强势,少些了很多if-else。
  5. 界定原子类型操作,通过构造函数来保证相关属性的联动修改,所以在licontrol中多了几个构造函数和
    public string Value { get; private set; }类型的属性

总结下来,在今后的代码开发中,尝试通过HtmlGenericControl、HtmlAnchor等去处理html结构。

发现几个问题

  1. 从HtmlGenericControl继承,IDE不能自动发现这个控件。不能像其他控件那样拖放。对我们没什么影响,因为我们开发中就不用拖放的这种操作
  2. 为了在WEB上显示,继承HtmlGenericControl你需要在继承的类中也要有两个相应的构造函数,我暂时不明白原因。

生成一个Menu DEMO:
ULControl1.SelectedValue = “webmy”;
ULControl1.SelectedValueCSS = “red”;
ULControl1.LIItem.Add(new LIItem(“商户1″, “345678″));
ULControl1.LIItem.Add(new LIItem(“商户2″, “22232″));
ULControl1.LIItem.Add(new LIItem(“商户3″, “833443″));
ULControl1.LIItem.Add(new LIItem(“商户4″, “44454″, “blue”));
ULControl1.LIItem.Add(new LIItem(“pumaboyd”, “webmy”,”http://www.pumaboyd.com”,”hi”));

下载控件:ULControl

使用.NET进行WAP开发

WAP应用程序结构

首先你拥有一个Web应用,那么集成WAP服务就相当容易。
你不必为原来的业务逻辑进行重新构建,而且如果你Web本身的应用就有分层的,那么扩展到WAP是很方便的。
对于我们目前的应用,我们可以简单的认为是WEB应用的Mobile迁移。更多的是在UI\UE上的调整。

WAP采用什么标准

1.XHTML Mobile 1.0(WAP2.0)
Google Mobile
wap.taobao.com
3g.sina.com.cn

2.WML1.1
3g.qq.com
wap.kong.net
3g.sina.com.cn

对比了一些网站WAP开发。google的Mobile应用都是基于XHTML Mobile1.0,也的确做的很优秀。其他很多WAP网站,都是支持WML1.1 和 XHTML Mobile 双标准的。

Read the rest of this entry »

Excel多文件合并(VBA方案)

这个问题是来自MM的。MM财务工作和Excel比较多。最近MM公司要统计各分公司的数据。由于城市比较多,需要汇总的工作量比较大。而且有很大 一部分数据基础工作是Copy,Paste 数据。为表达对MM的关心和爱护(嘻嘻),写了这么一段VBA,可以大大减轻MM的工作量。

我用一个简单的原型来说明这个问题。

Excel文件:上海.xsl、北京.xsl、广州.xsl。这些数据由各地分公司提供,以3个城市说明问题。

MM的工作(这里忽略格式调整等):

1:将上面3个xsl文件拷贝到一个全国.xsl中。也就是要有 上海.sheet、北京sheet、广州sheet  3个sheet

2:同时又要将3个sheet的数据汇总到一个全国sheet中。

3:最终结果就是一个全国.xsl文件包含4个sheet(全国、上海、北京、广州)

最早想的办法是将Excel文件导入Access数据库,我再将数据导出。毕竟搞IT的,SQL语法对我来说没问题。但在导入Access中发现Excel文件有合并单元格问题,而且几个Excel列数不一样。发现导入Access对Excel文件本身要求高,方案失败。

没 办法就只能使用宏来模拟用户的操作。已经很久没写VBA了,特意查了一下最早的一个是2006-12-28的Excel文件。(*^__^*),都是一年 以前的事情了。本身就是现学现用,又这么长时间,基本忘过。好在这东西不复杂,看看原来的资料,再网上搜索了一下。一个晚上搞定了。

关键代码如下(伪代码,):

–调用选取文件对话框,选择多个xls文件

Filenames = Application.GetOpenFilename(“Microsoft Office Excel Files (*.xls), *.xls”, , “请选取文件”, , True)

–循环FileNames,Copy当前文件内容,粘贴到新增的Sheet中(完成多个XLS 合并到一个xsl中),再将数据合并到全国sheet中

Workbooks(FileNames(i)).Worksheets(1).UsedRange.Copy

Worksheets.Add after:=Worksheets(1)

ActiveSheet.Paste

Workbooks(“总表名”).Worksheets(thisheetname).[A65536].End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

原代码我就不提供了,这里提供方案下载,如果你有类似的操作,可以使用这个Excel。

合并DEMO方案Excel_VAB1