python概览

[b]2.1 概览[/b]
先看下第一个Python程序.
文件名: odbchelper.py

def buildConnectionString(params):
"""Build a connection string from a dictionary of
parameters. Returns string. """

return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

if __name__ == "__main__":
myParams = {"server":"mpilgrim", \
"database":"master" }
print buildConnectionString(myParams)

先打开第一章安装的ActivePython.
选File - New
选 Python Script
把上边的代码复制在编辑器中. 保存为odbchelper.py
再选 File - Run
可以看到运行结果.


[b]2.2 函数声明[/b]
例如上边例子中的:
def buildConnectionString(params):
其中:
def 是关键字. 函数声明以它开始.
接着是函数名.
再接着的()中是参数表. 多个参数用逗号分割.

它不需要声明返回类型. 实际上. 每个Python函数都返回一个值:
若函数执行过return语句. 则返回指定的值. 否则返回None(Python的空值).

并且在函数的参数表中. 不需要指定参数类型. 在调用的时候. 会自动将类型记录下来.


[b]2.3 文档化函数[/b]
在前边例子中. 函数定义中的第一个东西是以"""开头和结尾的字符串.
"""Build a connection string from a dictionary of
parameters. Returns string. """
这种用三个引号扩起来的字符串. 表示它是一个多行字符串. 它们之间(包括回车符)的东西都作为字符串的内容.

这种字符串可以用在任何地方. 但它们现在用在这里是作为函数的文档(即注释).
函数的文档(如果存在) 必须是函数定义时的第一个内容(冒号后的第一个内容).

而且在Python中. 函数的文档可以在运行时作为函数的属性.


[b]2.4 万物皆对象[/b]
上一讲最后提到. 函数的文档可以在运行时作为函数的属性.
在Python中. 一切东西都是对象. 都有属性和方法. 函数也是对象.
这一讲具体看一个例子来学习一下.
例如. 在使用的IDE的 Interactive Window(交互窗口) 中:
>>> import odbchelper
>>> print odbchelper.buildConnectionString.__doc__
就可以打印出该函数的文档.

其中:
import 是导入一个程序模块. 模块指的是: 可以交互使用的一个代码段.
导入一个模块后. 就可以引用它的公共函数. 类. 或属性.
所以可以在一个模块中通过 import 来使用其它模块. 也可以在IDE中这样做.
使用导入的模块中的函数. 要通过模块的名字来访问. 正如例子中那样.
这里我们访问的是该函数的__doc__属性. 它是每个函数对象都有的内置属性.

模块导入的搜索路径
说到了模块的导入. 就要说说库的搜索路径.
在导入一个模块时. Python会在 sys.path 中指定的目录进行搜索.
而 sys.path 是一个list对象. 可以通过 list 的方法来查看或修改它.
这样我们通过修改 sys.path 就可以追加搜索路径.


[b]2.5 代码缩进[/b]
Python 不使用 {} 来作为函数的开始和结束. 而是用代码块的缩进.
象函数. if语句. for. while等. 都是用代码块的缩进来表示块的开始和结束.
例如:
def fib(n):
print 'n =', n
if n > 1:
return n * fib(n - 1)
else:
print 'end of the line'
return 1
这个例子可以看出 Python的风格:
用硬回车来分割语句. 用冒号和缩进来分割代码块.
如果语句太长. 可以用续行符 \ 来续行. 续行时代码可以随便缩进.
实际上. 在{} [] () 中的表达式也可以不用续行符 \ 而直接写为多行.
不过. 缩进的字符数没有限制.

例子中的 print语句 用来向屏幕输出. 它可以接受任何数据类型. 如字符串. 整数. list等.
而且可以用一个print语句输出多个内容. 只要把它们用逗号隔开就行了.


[b]2.6 测试模块[/b]
首先. 和函数一样. Python的模块也是对象. 模块对象都有一个内置属性__name__
这个__name__属性的值. 根据如何使用该模块而定.
当 import一个模块时. __name__的值是该模块的文件名.
当 直接运行一个模块时. __name__的值是一个特别的值: __main__

所以为了测试一个模块. 可以在该模块的内部设计一个测试套件.
即加入一个类似下边的if语句:
if __name__ == "__main__":
myParams = {"server":"mpilgrim", \
"database":"master" }
print buildConnectionString(myParams)
这样. 当直接运行该模块时执行指定的代码. 而在该模块被其它模块 import 时却忽略.
资源下载链接为: https://pan.quark.cn/s/3d8e22c21839 随着 Web UI 框架(如 EasyUI、JqueryUI、Ext、DWZ 等)的不断发展与成熟,系统界面的统一化设计逐渐成为可能,同时代码生成器也能够生成符合统一规范的界面。在这种背景下,“代码生成 + 手工合并”的半智能开发模式正逐渐成为新的开发趋势。通过代码生成器,单表数据模型以及一对多数据模型的增删改查功能可以被直接生成并投入使用,这能够有效节省大约 80% 的开发工作量,从而显著提升开发效率。 JEECG(J2EE Code Generation)是一款基于代码生成器的智能开发平台。它引领了一种全新的开发模式,即从在线编码(Online Coding)到代码生成器生成代码,再到手工合并(Merge)的智能开发流程。该平台能够帮助开发者解决 Java 项目中大约 90% 的重复性工作,让开发者可以将更多的精力集中在业务逻辑的实现上。它不仅能够快速提高开发效率,帮助公司节省大量的人力成本,同时也保持了开发的灵活性。 JEECG 的核心宗旨是:对于简单的功能,可以通过在线编码配置来实现;对于复杂的功能,则利用代码生成器生成代码后,再进行手工合并;对于复杂的流程业务,采用表单自定义的方式进行处理,而业务流程则通过工作流来实现,并且可以扩展出任务接口,供开发者编写具体的业务逻辑。通过这种方式,JEECG 实现了流程任务节点和任务接口的灵活配置,既保证了开发的高效性,又兼顾了项目的灵活性和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值