【Python】字符串的换行 和 引入其他py文件

来源:互联网 时间:2017-06-01

1. 如果你的字符串很长,那么改如何处理呢?


直接回车是不行的,就像这样子:




python提供了3中方式可以用来对很长的字符串进行换行显示


A. 三个‘号




B. 三个"号




C. 在第一行的末尾加上 /





2. 想要引入其他的包或者其他的py文件如何做呢?


其实问题就归根结底到import的用法了:


转自:http://blog.csdn.net/lisonglisonglisong/article/details/38666819



在程序中定义函数可以实现代码重用。但当你的代码逐渐变得庞大时,你可能想要把它分割成几个文件,以便能够更简单地维护。同时,你希望在一个文件中写的代码能够被其他文件所重用,这时我们应该使用模块(module)



一、导入模块



在Python中,一个.py文件就构成一个模块。一个模块中的定义可以导入(import)到另一个模块或主模块。



比如你可以通过内置模块platform来查看你当前的操作平台信息:


[python]view
plaincopyimportplatform
s=platform.platform()
print(s)
#我的输出:Linux-3.15.8-200.fc20.x86_64-x86_64-with-fedora-20-Heisenbug
又比如你可以通过内置模块time获取当前的时间:[python]view
%20plaincopyimporttime
s=time.ctime()
print(s)
#输出:MonAug1816:04:572014


每个模块有其私有的符号表,在该模块内部当成全局符号表来使用。%20当我们将一个模块导入到当前模块时,只有被导入模块的名称被放入当前模块的全局符号表里,所以我们不用担心变量名发生冲突。



其他几种导入方式:



1、import%20a%20as%20b:导入模块a,并将模块a重命名为b。

[python]view
%20plaincopyimporttimeasx
s=x.ctime()
print(s)


2、from%20a%20import%20func:直接把模块内的函数或变量的名称导入当前模块符号表里。


[python]view
%20plaincopyfromtimeimportctime
s=ctime()#这时可以直接调用函数,而不用再使用time.ctime()
print(s)
3、from%20a%20import%20*:导入模块中所有的名字(以下划线开头的名字除外)到当前模块符号表里。[python]view
%20plaincopyfromtimeimport*
s=ctime()
print(s)


注意:导入%20*%20是不好的,因为它常常产生难以阅读的代码,并且会容易产生名字冲突。



二、模块搜索路径



当导入名为%20a%20的模块时,%20解释器会先从内建模块尝试匹配,如果没找到,则将在sys.path记录的所有目录中搜索%20a.py%20文件,而sys.path则包括:


当前程序所在目录标准库的安装目录操作系统环境变量PYTHONPATH所包含的目录


变量%20sys.path%20是一个字符串列表,它为解释器指定了模块的搜索路径。它通过环境变量%20PATHONPATH%20初始化为一个默认路径,当没有设置%20PYTHONPATH%20时,%20就使用内建默认值来初始化。你可以通过标准%20list%20操作来修改它:

[python]view
%20plaincopy>>>importsys
>>>sys.path.append('/ufs/guido/lib/python')


三、模块的__name__



对于任何一个模块,模块的名字都可以通过全局变量__name__得到:

[python]view
%20plaincopyimporttime
s=time.__name__
print(s)#输出time
一个模块既可以在其它模块中导入使用,也可以当作脚本直接运行。不同的是,当导入到其他模块时,__name__的值是被导入模块的名字;而当作为脚本运行时,__name__的值被设为“__main__”:
[python]view
%20plaincopy#test.py
if__name__=='__main__':
print('Thisprogramisbeingrunbyitself')
else:
print('Iambeingimportedintoanothermodule')
当作脚本执行:
%20plaincopy$pythontest.py
Thisprogramisbeingrunbyitself
当作导入模块使用:[python]view
%20plaincopy>>>importtest
Iambeingimportedintoanothermodule
>>>


四、dir()%20函数


在Python3基础六中我们提到,可以通过内置dir()函数查询一个类或者对象的所有属性。除此之外,我们还可以用它列出一个模块里定义的所有名字,它返回一个有序字串列表:

[python]view
%20plaincopy>>>importbuiltins
>>>dir(builtins)


五、包



可以把多个模块,即多个.py文件,放在同一个文件夹中,构成一个包(Package)。例如:


%20plaincopysound/顶级包
__init__.py初始化这个声音包
formats/格式转换子包
__init__.py
wavread.py
wavwrite.py
aiffread.py
aiffwrite.py
auread.py
auwrite.py
...
effects/音效子包
__init__.py
echo.py
surround.py
reverse.py
...
filters/过滤器子包
__init__.py
equalizer.py
vocoder.py
karaoke.py
...


注意:在每个包文件夹里都必须包含一个%20__init__.py%20的文件,告诉Python,该文件夹是一个包。__init__.py%20可以是一个空文件。



我们可以通过import%20包名.模块名导入包中的子模块,例如:

[python]view
%20plaincopyimportsound.effects.echo
当然,也可以使用from...%20import...句式导入包中的模块:
[python]view
%20plaincopyfromsound.effectsimportecho#导入echo子模块
fromsound.effects.echoimportechofilter#导入echo子模块中的函数或变量
fromsound.effectsimport*#导入__all__变量中所有的子模块

相关阅读:
Top