标签:前缀 知识库 方法 cto AC rom 就是 背景图像 这一
对于Python而言,有一点是要认识明确的,python作为一个相对而言轻量级的,易用的脚本语言(当然其功能并不仅限于此,在此只是讨论该特点),随着程序的增长,可能想要把它分成几个文件,以便逻辑更加清晰,更好维护,亦或想要在几个程序中均使用某个函数,而不必将其复制粘贴到所有程序中。
为了支持这一点,Python有一种方法将定义函数放在一个文件中,并在脚本中使用它们,这样的文件叫做模块,一个模块中的定义可以被导入到其他模块,或者主模块中。
简单来说在python中模块就是指一个py文件,如果我们将所有相关的代码都放在一个py文件中,则该py文件既是程序由是模块,但是程序和模块的设计目的是不同的,程序的目的是为了运行,而模块的目的是为了其他程序进行引用。
Directory:
Dictionary在pycharm中就是一个文件夹,放置资源文件,对应于在进行JavaWeb开发时用于放置css/js文件的目录,或者说在进行物体识别时,用来存储背景图像的文件夹。该文件夹其中并不包含_ _ init.py_ _文件
Package(Python中将一个.py文件看作一个module):
对于Python package 文件夹而言,与Dictionary不同之处在于其会自动创建_ _ init.py_ _文件。
简单的说,python package就是一个目录,其中包括一组模块和一个_ _ init.py_ _文件。目录下具有init.py文件,这样可以通过from…import的方式进行.py文件的导入.
如下通过几个例子进行说明,如何进行module的导入,目录结构如下:
假设file这个package是一个开源包,里面有一些现有的我们需要在one文件中使用的方法。
hello.py代码:
class package(): def Foo(self): print "hello world" class two(): def Foo2(self): print "hello Python" def write(str): print str
对于module的导入,个人认为有如下方式:
(1)形式:import module(将整个模块全部导入)
import file.hello o = file.hello.package() #可能同时import多个module,因此使用的方法需要说明是哪个module中的方法 o.Foo() file.hello.write("hello")#说明是file.hello这个module中的write方法
(2)from module import 需要用的类名或方法名
from file.hello import package,write o = package() #已经声明了导入的package是file.hello这个module的,因此不必再使用前缀 o.Foo() write("hello")
(3)from package(包) import module
from image import hello hello.write("hello") o = hello.package() #同样可能导入了多个模块,因此需要注明是哪个模块的 o.Foo()
需要注意的是,可以从package中进行import,但是对directory无法进行import,想导入某个文件夹中的.py文件,必须有init.py文件,在module导入之后就可以使用module中的类,函数,变量。
以上内容皆来自于网络!!
PyCharm中Directory与Python package的区别
标签:前缀 知识库 方法 cto AC rom 就是 背景图像 这一
原文地址:https://www.cnblogs.com/za0909/p/9106172.html