zoukankan      html  css  js  c++  java
  • python基础-包的使用

        1.什么是包:

          包的本质就是文件夹,它由一个包含有__init__.py文件的文件加。

          包以及包下所有的文件都是用来被导入使用,没有一个文件是用来直接运行,

          因为包是模块的一中通用表现形式之一。----》from...import 和 import  使用

          

        2.为什么要有包?

          方便于集中管理,方便于使用者

        3.怎么用

          模块的使用一样。

          import 包名发生了什么事情?对比模块导入

          a.创建 p1 的名称空间

          b.执行p1下的__init__.py文件的代码,将执行过程中产生的名字都丢到p1名称空间中

          c.在当前执行文件中(调用者)拿到一个名字p1,p1指向__init__.py的名称空间。即原p1的名称空间

         4.包内模块:

          绝对导入:每次导入都是以最顶级包为起始开始查找。   搜索路径以执行文件的文件夹为基准。

          相对导入:相对于当前所在的文件,点.代表当前所在的文件目录,点点..代表上一级的目录。相对导入只能在被导入的模块中使用

          示例:

            

            执行文件run.py 导入m1模块

            做法:

              1.在p1模块的__init__.py导入m1模块

              2.执行文件是run.py 且m1不是内置模块,所以路径以执行文件的文件夹为基准

            __init__.py 文件  导入 m1模块

            

            run.py文件 导入 p1模块

            

          

        5.自定义模块导入的两种办法:

          a.import sys

           sys.path.append( r' 自定义模块绝对路径 ')

           import 自定义模块名

          b.以执行文件的文件夹为绝对路径  from  x import 自定义模块

                 

          

  • 相关阅读:
    Educational Codeforces Round 83 --- F. AND Segments
    Educational Codeforces Round 83 --- G. Autocompletion
    SEERC 2019 A.Max or Min
    2019-2020 ICPC Southwestern European Regional Programming Contest(Gym 102501)
    Educational Codeforces Round 78 --- F. Cards
    今天我学习了一门全新的语言
    codeforces 1323D 题解(数学)
    Educational Codeforces Round 80 (Div. 2) 题解 1288A 1288B 1288C 1288D 1288E
    Educational Codeforces Round 81 (Div. 2) 题解 1295A 1295B 1295C 1295D 1295E 1295F
    Codeforces Round #617 (Div. 3) 题解 1296C 1296D 1296E 1296F
  • 原文地址:https://www.cnblogs.com/linbin7/p/10669166.html
Copyright © 2011-2022 走看看