设为首页 收藏本站
查看: 671|回复: 0

[经验分享] python概览

[复制链接]

尚未签到

发表于 2017-4-21 08:08:21 | 显示全部楼层 |阅读模式
2.1 概览
先看下第一个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
可以看到运行结果.


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

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

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


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

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

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


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

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

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


2.5 代码缩进
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语句输出多个内容. 只要把它们用逗号隔开就行了.


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

所以为了测试一个模块. 可以在该模块的内部设计一个测试套件.
即加入一个类似下边的if语句:
if __name__ == "__main__":
    myParams = {"server":"mpilgrim", \
                "database":"master" }
    print buildConnectionString(myParams)
这样. 当直接运行该模块时执行指定的代码. 而在该模块被其它模块 import 时却忽略.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-367100-1-1.html 上篇帖子: python 安装memcached 下篇帖子: python closures
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表