《head first python》— 函数定义、模块与发布、共享代码

1.定义一个函数

假如一个函数已经发布,则升级时,为新添加的变量设定缺省值的设定可以保证不同版本函数的兼容。

def print_lol(the_list, indent=False, level=0, fh=sys.stdout):
"""
格式化输出列表(包含嵌套和非嵌套列表),一次显示一行,嵌套列表可以缩进
indent:是否缩进;level:tab缩进个数;fh为写入文件地址,默认显示到屏幕
"""
	for each_item in the_list:
		if isinstance(each_item, list):
			print_lol(each_item,indent,level+1,fh)
		else:
			if indent:
				for tab_stop in range(level):
					print("\t", end='', file=fh)
			print(each_item, file=fh)

2.函数转化为模块

将函数保存到一个适当命名的文件中nester.py.

3.模块发布

创建一个文件夹命名为nester,新建setup.py文件,包含发布的元数据。首先从python发布工具导入“setup”函数

from distutils.core import setup

setup(
	name			= 'nester',
	version			='1.0.0',
	py_modules		=['nester'],
	auther			='a'
	auther_email	='[email protected]'
	description		=''
	)

4.构建发布

发布工具将构建一个发布所需的所有功能,打开cmd命令行,定位到nester文件夹,输入:C:\Python27\python.exe setup.py
sdist

屏幕上会出现一组状态,确认发布已经创建。将发布安装到Python本地副本。输入:sudoC:\Python27\python.exe setup.py install

确认本地副本已经安装,出现build和dist两个文件夹。

发布就绪。可以导入模块并使用:import nester

5.上传到PyPI共享

linux:python2.7 setup.py sdist upload

windows:C:\Python27\python.exe setup.py sdist upload

6.debug过程

import模块报错,主要有以下错因:

(1)汉字注释。解决:开头添加#coding: utf-8

(2)书上用python3,实际用python2.7.在同行输出有问题

Python
2

print 'Python', python_version()
print 'Hello, World!'
print('Hello, World!')
print "text", ; print 'print more text on the same line'

Python 2.7.6
Hello, World!
Hello, World!
text print more text on the same line

Python 3

print('Python', python_version())
print('Hello, World!')
print("some text,", end="")
print(' print more text on the same line')
#结果
Python 3.4.1
Hello, World!
some text, print more text on the same line

print 'Hello, World!'
#报错
File "<ipython-input-3-139a7c5835bd>", line 1
print 'Hello, World!'
^
SyntaxError: invalid syntax

(3)NameError:
name ‘sys‘ is not defined解决:import sys代码更改为:

</pre><pre name="code" class="python">#coding: utf-8
import sys
def print_lol(the_list, indent=False, level=0, fh=sys.stdout):
	"""
	格式化输出列表(包含嵌套和非嵌套列表),一次显示一行,嵌套列表可以缩进
	indent:是否缩进;level:tab缩进个数;fh为写入文件地址,默认显示到屏幕
	"""
	for each_item in the_list:
		if isinstance(each_item, list):
			print_lol(each_item,indent,level+1,fh)
		else:
			if indent:
				for tab_stop in range(level):
					file=fh
					print "\t",;print file
			file=fh
			print(each_item, file)

导入成功:

版权声明:欢迎转载,转载请注明出处http://blog.csdn.net/ztf312/

时间: 2024-10-08 08:03:36

《head first python》— 函数定义、模块与发布、共享代码的相关文章

Python——函数,模块,简单文件读写

函数(function)定义原则: 最大化代码重用,最小化代码冗余,流程符合思维逻辑,少用递归; 函数的定义方法: def function_name(param_1, param_2): ..... return output  #输出,结束函数 注意: 函数要在使用之前定义函数的使用方法以print()函数为例形式参数和实际参数在函数内定义的变量为本地变量,在函数外无法访问 参数传递: 实际参数通过赋值运算传递给形式参数注意:如果参数是列表,在函数内可以被修改 (列表可以原位传递) 1 de

Python——函数,模块,简单文件读写(python programming)

函数(function)定义原则: 最大化代码重用,最小化代码冗余,流程符合思维逻辑,少用递归; 函数的定义方法: def function_name(param_1, param_2): ..... return output  #输出,结束函数 注意: 函数要在使用之前定义函数的使用方法以print()函数为例形式参数和实际参数在函数内定义的变量为本地变量,在函数外无法访问 参数传递: 实际参数通过赋值运算传递给形式参数注意:如果参数是列表,在函数内可以被修改 (列表可以原位传递) 1 de

python函数定义

刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解.其实只要把函数参数定义搞清楚了,就不难理解了. 先说说函数定义,我们都知道,下面的代码定义了一个函数funcA def funcA():  pass    显然,函数funcA没有参数(同时啥也不干:D). 下面这个函数funcB就有两个参数了,def funcB(a, b):  print a  print b调用的时候,我们需要使用函数名,加上圆括号

Python学习-10.Python函数定义(二)

在Python中定义函数的时候,可以使用参数默认值的方式定义函数 例子: 1 def welcome(who,state='is',action='talking'): 2 print(who,state,action) 调用函数: 1 welcome('Tom') 输出Tom is talking 1 welcome('Tom','was') 输出Tom was talking 1 welcome('Tom',action='sleeping') 输出Tom is sleeping 可见,在参

初识python 函数(定义,传参,返回值)

python基础(二): 菜鸟教程基础知识讲解的非常全面,内容选择我认为的重点输出一遍 函数: 定义一个函数: 你可以定义一个由自己想要功能的函数,以下是简单的规则: def fun(arg): pass return arg # 函数调用语法 fun(arg) arg:argument,参数(也叫prarmeter) ,任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数. def:define,定义,创建函数 ,函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()

python函数定义和使用

python函数的定义与使用1.python使用关键字def进行函数的定义,其中标准的函数定义格式为:def(参数列表): 函数体 return 返回参数列表 2.函数在敌营变量作用返回(作用域):全局变量(global n)和局部变量 3.表白代码:#爱心表达函数 def my_heart(a,b): print("\n".join(["".join([(a[(x-y) % len(a)] \ if ((x*0.04)**2+(0.1*y)**2-1)**3-(x

python 函数定义和调用

一.python 函数的分类: 1.内置函数 2.标准库函数 3.第三方函数 4.用户自定义函数 函数定义和调用 在使用函数之前必须先定义函数,执行def时,会创建一个函数对象并绑定到函数名变量上,定义函数的语法格式如下: def 函数名(形参列表):    //由零条到多条可执行语句组成的函数    [return [返回值]] 示例: 二.返回值: return 返回值要点: 1.如果函数体中包含return 语句,则结束函数执行并返回值: 2.如果函数体中包含return语句,则返回Non

python 函数定义

python 函数 ---------------- ---------------- ---------------- ---------------- def test(x): print(x) test(1) # 需要一 一对应多一个不行,少一个也不行 ---------------- ---------------- ---------------- ---------------- def test(x,*y):  #x 表示形参  *y表示可变参数 print(x) print(y)

python函数定义与使用+返回值简解

一个函数相当于一个功能块,当要使用时,可以直接调用,避免了垒代码. 函数定义和使用: 1 #函数 2 def mail(): #定义函数 3 n = 123 #函数体 4 n += 1 5 print(n) 6 mail() #加括号表示执行函数 7 f = mail #函数名,赋值结果一样 8 f() 9 10 #执行结果: 11 124 12 124 def:表示函数的关键字(解析器解析到def,识别为定义函数,默认不执行) 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系

python函数及模块

Python中函数的作用 要写出高质量的代码首先要解决的就是重复代码的问题,这可能也是大多数语言一种必不可少的操作. 定义函数 在Python中可以使用def关键字来定义函数,和变量一样每个函数也有一个响亮的名字,而且命名规则跟变量的命名规则是一致的.在函数名后面的圆括号中可以放置传递给函数的参数,这一点和数学上的函数非常相似,程序中函数的参数就相当于是数学上说的函数的自变量,而函数执行完成后我们可以通过return关键字来返回一个值,这相当于数学上说的函数的因变量. 函数的参数 函数是绝大多数