函数 函数通过 def max(a,b): if a>b: print a else: print b max(3,5) 5 使用global语句,可以将一个变量声明为全局变量,即使在函数内部也可以为函数外部的变量赋值 x=10 def func(): global x x=20 print x func() 20 默认参数值,当用户没有给相应参数提供值时将采用默认的参数值,对于没有默认值的参数必须提供值 >>> def say(a,b=2): print a*b >>> say('hello') hellohello >>> say('hello',3) hellohellohello 关键参数,用户可以在使用时通过名称来给自己想赋值的参数赋值 >>> def say(a,b=23,c=32): print 'a is',a,'b is',b,'c is',c >>> say(a=12,c=12) a is 12 b is 23 c is 12 return语句,默认Python每个函数最后都暗含一个return None语句,表示该函数没有任何返回值 >>> def say(): return 3 >>> say() 3 文档字符串,类似于函数,类等的说明 >>> def say(): '''这是一个函数 用于返回一个字符串''' print 'aaa' >>> help(say) Help on function say in module __main__: say() 这是一个函数
用于返回一个字符串 >>> print say.__doc__ 另一种查看文档字符串的方法 注意双下划线 这是一个函数 用于返回一个字符串 模块 如果你想要在其他程序中重用很多函数,就需要使用模块,模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。 模块可以从其他程序 输入 以便利用它的功能。这也是我们使用Python标准库的方法。首先,我们将学习如何使用标准库模块。 >>> import sys 导入sys模块 >>> print 'path is',sys.path 使用sys模块中的path变量 path is ['C:\\Python23\\Lib\\idlelib', 'C:\\WINDOWS\\system32\\python23.zip', 'C:\\Python23', 'C:\\Python23\\DLLs', 'C:\\Python23\\lib', 'C:\\Python23\\lib\\plat-win', 'C:\\Python23\\lib\\lib-tk', 'C:\\Python23\\lib\\site-packages'] 当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。每个Python模块都有它的 if __name__ == '__main__': print 'This program is being run by itself' else: print 'I am being imported from another module' 创建你自己的模块是十分简单的,你一直在这样做!每个Python程序也是一个模块。你已经确保它具有
上面是一个 模块 的例子。你已经看到,它与我们普通的Python程序相比并没有什么特别之处。我们接下来将看看如何在我们别的Python程序中使用这个模块。 记住这个模块应该被放置在我们输入它的程序的同一个目录中,或者在
mymodule.sayhi()
你可以使用内建的 >>> def say(): return None >>> x=10 >>> dir() ['__builtins__', '__doc__', '__name__', 'say', 'x'] 当你为 >>> import sys >>> dir(sys) ['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__', '__stdin__', '__stdout__', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle', 'exc_clear', 'exc_info', 'exc_traceback', 'exc_type', 'exc_value', 'excepthook', 'exec_prefix', 'executable', 'exit', 'exitfunc', 'getcheckinterval', 'getdefaultencoding', 'getfilesystemencoding', 'getrecursionlimit', 'getrefcount', 'getwindowsversion', 'hexversion', 'maxint', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'setcheckinterval', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'version', 'version_info', 'warnoptions', 'winver'] 注意,输入的模块同样是列表的一部分。 >>> import sys >>> def say(): return None >>> x=10 >>> dir() ['__builtins__', '__doc__', '__name__', 'say', 'sys', 'x'] |
|