* PYTHON 趋向于将功能相近的对象放进一个MODULE(文件)里,不用担心对象会太大,因为如果对象太大了,那它可能是做的事性太多了
需要被重构、分解。
* 开发辅助工具是PYTHON的一个强项。如构建工具、统计工具等等,只要有需求,它一定办得到,因为这些应用对安全和性能要求不高,反
而对开发的简洁性有很高的乞求。
* 只把会发生意外的那一小部分放进try里,把try成功后的操作放进else里,try失败后的操作放进except里,把不管成功或失败都需要的操作
放进finally里(为什么不写在try-catch块后呢?因为这个try-catch块代表一个风险操作集合的语意)
* PYTHON中可以简化操作的内置语法有:for/else(如果for集合为空则执行else语句)
Python 是Google的3个官方语言之一,在Google的应用开发中大量应用,不过,更多的是应用在开发辅助工具上:
* The Google build system.All of Google's corporate code is checked into a repository and the dependency and building of this code is managed by python.Greg mentioned that to create code.google.com took about 100 li ......
一颗语法糖——装饰器
理论不去管,只管能办事:
1. 我要让一个函数在执行的时候,去做一些事情,比如,我要看看这些函数是不是有docstring,将这个功能拿出来,定义一个装饰器:
def showmedoc(func):
if func.__doc__:
print 'has doc'
else:
print 'no doc'
return func #别装饰了之后把人家原来的函数给盖了,除了需要的情况...
和装饰设计模式异曲同工,差不多就是一个东西,下面就用它来办事情 了:
@showmedoc
def f1():
'''i have doc'''
pass
@showmedoc
def f2():
pass
执行结果:
>>>
has doc
no doc
>&g ......
背后有一大套的理论 !!管它呢!?理论能当饭吃吗?
先知道怎么用再说!
记住:元类就是类的模板——太形象了了呀,霍霍。
我要一大群的类都具有一中特点,我怎么给他们加上呢?模板模板吗,我从这个模板创建一群类不就OK了?那就需要元类了。霍霍》
定义一个元类(就所一个类的模板!莫多想,还要记住这是类级别的,不是对象级别的!):
class MyMeta(type):
... def __init__(cls,name,bases,dic):
... print cls.__name__
... print name
... def __str__(cls):return 'Beautiful class %s'%cls.__name__
这是个什么东西?哈,这是个元类。是个类的模板。
它要用在哪里?它要用在一个类里,作为这个类的模板。
起的什么作用?模板,就是提供一些共同的特征。
这个类提供了什么样的特征?两个特征,1。类定义后打印类的名字(__init__)。2。打印类的格式(__str__)。
到底回怎么工作,打开的你的解释器,输入以上的代码,上路:
输入:
class MyClass(object):
... __metaclass__ = MyMeta
回车结束 ......
vim支持大部分文件格式的语法高亮,而且可以自定义。不过缺省的python语法高亮感觉太少,修改一下。
1.修改语法高亮文件
vim/vim72/syntax/python.vim
将" let python_highlight_all = 1
前面的引号去掉,可支持内置函数,数字,空格,异常的语法高亮。
2. 将self加进
syn keyword pythonBuiltin reversed sorted sum self
这一行最后。
3. 将标点符号加进高亮
在HiLink定义前加入一行:
syn match pythonOper "=\|+\|-\|*\|{\|}\|[\|]\|(\|)\|\.\|,"
在尾巴上加入:
HiLink pythonOper Operator " SpecialKey
这时,python语法基本比较鲜艳了。 ......
1、下载oracle软件
http://www.oracle.com/technology/software/tech/oci/instantclient/index.html
oracle-instantclient-basic-10.2.0.4-1.i386.rpm
oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm
oracle-instantclient-devel-10.2.0.4-1.i386.rpm
2、安装rpm包
rpm -ivh oracle-instantclient-basic-10.2.0.4-1.i386.rpm
rpm -ivh oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm
rpm -ivh oracle-instantclient-devel-10.2.0.4-1.i386.rpm
3、配置文件
#vi /etc/ld.so.conf
在最后加入/usr/lib/oracle/10.2.0.4/client/lib
重启ldconfig
ldconfig
vi /root/.bash_profile
增加如下两行:
export ORACLE_HOME=/opt/instantclient_10_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
运行source /root/.bash_profile使改动生效
#vi /etc/profile最后加入
export ORACLE_HOME=/usr/lib/oracle/10.2.0.4/client
export LD_LIBRARY_PATH=:$ORACLE_HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH:.
export TNS_ADMIN=$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME/bin:.
Oracle安装完成
此时就可以用sqlplus访问远端Oracle数据库了  ......
1、下载oracle软件
http://www.oracle.com/technology/software/tech/oci/instantclient/index.html
oracle-instantclient-basic-10.2.0.4-1.i386.rpm
oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm
oracle-instantclient-devel-10.2.0.4-1.i386.rpm
2、安装rpm包
rpm -ivh oracle-instantclient-basic-10.2.0.4-1.i386.rpm
rpm -ivh oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm
rpm -ivh oracle-instantclient-devel-10.2.0.4-1.i386.rpm
3、配置文件
#vi /etc/ld.so.conf
在最后加入/usr/lib/oracle/10.2.0.4/client/lib
重启ldconfig
ldconfig
vi /root/.bash_profile
增加如下两行:
export ORACLE_HOME=/opt/instantclient_10_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
运行source /root/.bash_profile使改动生效
#vi /etc/profile最后加入
export ORACLE_HOME=/usr/lib/oracle/10.2.0.4/client
export LD_LIBRARY_PATH=:$ORACLE_HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH:.
export TNS_ADMIN=$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME/bin:.
Oracle安装完成
此时就可以用sqlplus访问远端Oracle数据库了  ......
1、下载oracle软件
http://www.oracle.com/technology/software/tech/oci/instantclient/index.html
oracle-instantclient-basic-10.2.0.4-1.i386.rpm
oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm
oracle-instantclient-devel-10.2.0.4-1.i386.rpm
2、安装rpm包
rpm -ivh oracle-instantclient-basic-10.2.0.4-1.i386.rpm
rpm -ivh oracle-instantclient-sqlplus-10.2.0.4-1.i386.rpm
rpm -ivh oracle-instantclient-devel-10.2.0.4-1.i386.rpm
3、配置文件
#vi /etc/ld.so.conf
在最后加入/usr/lib/oracle/10.2.0.4/client/lib
重启ldconfig
ldconfig
vi /root/.bash_profile
增加如下两行:
export ORACLE_HOME=/opt/instantclient_10_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
运行source /root/.bash_profile使改动生效
#vi /etc/profile最后加入
export ORACLE_HOME=/usr/lib/oracle/10.2.0.4/client
export LD_LIBRARY_PATH=:$ORACLE_HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH:.
export TNS_ADMIN=$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME/bin:.
Oracle安装完成
此时就可以用sqlplus访问远端Oracle数据库了  ......
原文链接
曾经在深入浅出java中文问题
系
列中研究过java的中文问题,现在中文问题已经不再羁绊我在java世界中漫游的脚步了。最近,对Python产生了浓厚的兴趣,谁知道跟中文问题这个
老朋友又一次不期而遇。看来,在代码世界中,中文问题会在很长一段时间里跟我们形影不离。这也难怪,谁让当初发明计算机的不是我们中国人呢,否则,现在全
世界的计算机都支持而且必须支持GBK,这样,写这样文章的人就不会是我了,而是大洋彼岸的一个金发碧眼的程序员,而且标题也相应改为
“studying the english problem in '大蟒' ”。。哈哈
YY而已,还是面对现实问题吧。相对java而言,中文问题在Python中的表现更为激烈。“激烈”的意思不是说更为严重或者说难于解决,只是
Python对于decode&encode错误的默认处理方式为strict,也就是直接报错,而java使用replace的方式来处理了,因此
java出现中文问题后会打印出很多"??"。此外,Python的默认的encoding是ASCII,而java的默认encoding跟操作系统的
encoding是一致的。在这一点上,我觉得java更为合理,这样对程序员更为友好,也减 ......