zoukankan      html  css  js  c++  java
  • PyCharm中Directory与Python package的区别

    对于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中的类,函数,变量。

    以上内容皆来自于网络!!

  • 相关阅读:
    Java+Selenium——Timeout接口相关方法介绍
    Java+Selenium——截图方法TakeScreenshot——保存到桌面 +时间 ——保存到工程目录下面
    Java+Selenium——window接口相关方法介绍
    java下连接mysql数据库 ——删除语句——delete
    java下连接mysql数据库 ——插入语句——insert
    java下连接mysql数据库 ——更新语句——update
    java下连接mysql数据库 ——查询语句——select
    Java+Selenium——利用Javascript处理滚动条——利用webdriver执行脚本直接滚动到指定坐标位置
    Java+Selenium——利用POI读写excel文件(因环境此篇为参考)
    keyboard logger源代码
  • 原文地址:https://www.cnblogs.com/za0909/p/9106172.html
Copyright © 2011-2022 走看看