python 包管理机制,python包管理工具pip

  python 包管理机制,python包管理工具pip

  1.模块A模块是一个包含python代码的文件,后缀名是。py。模块是一个python文件。为什么我们会使用太大的模块程序,不方便编写和维护?需要拆分模块增加代码复用方法,并将其作为命名空间,避免命名冲突。你如何定义一个模块?模块就是一个普通的文件,所以任何代码都可以直接写。但是根据模块规范,最好在这个块中写下面的内容函数(单个函数)类(类似函数的组合,或者类似的业务模块)来测试代码。如何使用模块模块直接导入模块名,模块名直接以数字开头,需要借助importlib帮助语法。

  导入模块名称

  模块名称.功能名称

  模块名称.类名称案例01.py,02.py,p01.py,p02.py #案例01.py

  #包含一个学生类

  # say hello函数

  #打印声明

  班级学生():

  def __init__(self,name=NoName ,age=18):

  self.name=name

  年龄=年龄

  def say(自我):

  打印(“我的名字是{0}”。格式(自我名称))

  def sayHello():

  打印(嗨,)

  Print(我是模块p0)# case02.py

  #在importlib包的帮助下,可以导入以数字开头的模块名。

  导入导入库

  #相当于导入一个名为01的模块,并将导入的模块赋给一个。

  a=importlib.import_module(01 )

  斯图=a .学生()

  Stu.say()#案例p01.py

  #包含一个学生类

  # say hello函数

  #打印声明

  班级学生():

  def __init__(self,name=NoName ,age=18):

  self.name=name

  年龄=年龄

  def say(自我):

  打印(“我的名字是{0}”。格式(自我名称))

  def sayHello():

  打印(嗨,)

  #这个判断语句建议永远作为程序的切入点。

  if __name__==__main__ :

  打印(我是模块p01)#案例p02.py

  导入p01

  stu=p01。学生(小静,19)

  斯图.赛伊()

  我的名字叫小静

  嗨,以别名导入模块。导入时,给模块一个别名。其余用法同第一种情况p03.py #情况p03.py。

  将p01作为p导入

  学生(岳跃,18岁)

  我叫岳跃,来自模块名导入功能名,类名。按照上述方法选择性导入使用时,可以直接使用导入的内容,无需前缀case p04# case p04.py

  从p01导入学生,说你好

  stu=学生()

  斯图.赛伊()

  我的名字叫诺娜

  嗨,从模块名称导入*导入模块所有内容案例p05.py #案例p05.py

  从p01导入*

  说你好()

  stu=学生(姚娜,20)

  你好,

  使用我的名字是姚娜if _ _ name _==``` _ main _ _可以有效避免模块代码导入时被动执行的问题。建议所有程序都以此代码为入口。2.模块的搜索路径和存储什么是模块的搜索路径?加载模块时,系统会在哪里寻找这个模块系统的默认模块搜索路径,导入sys?

  sys.path属性可以获取路径列表。

  # casep06.py # casep06.py

  导入系统

  打印(类型(sys.path))

  打印(系统路径)

  对于sys.path中的p:

  打印(p)类“列表”

  [ D:\\python\\project \ \ Package Management , D: \ \ PyCharm社区版2019.1.1 \ \ Helpers \ \ PyDev , D:\ \ Python \ \ Project , D:\ \ Helpers \ \ thirftpy , D:\\PyCharm社区版2019.1.1\\helpers\\pydev , C:\ \ Users \ \ user \ \ . pycharmce 2019.1 \ \ system \ \ Cythonxtensions , D:\ \ Python \ \ Project \ \ Package Management , D:\ \ anaconda 3 \ \ ENVS \ \ OPP \ Python 37 .

  d:\ python \ project \ Package Management

  D:\PyCharm社区版2019.1.1\helpers\pydev

  D:\python\project

  D:\PyCharm社区版2019 . 1 . 1 \ helpers \ third _ party \ thriftpy

  D:\PyCharm社区版2019.1.1\helpers\pydev

  c:\ Users \ user \ . pycharmce 2019.1 \ system \ cytone extensions

  d:\ python \ project \ Package Management

  d:\ Anaconda3 \ envs \ opp \ python 37 . zip

  d:\ Anaconda3 \ envs \ opp \ dll

  D:\Anaconda3\envs\opp\lib

  D:\Anaconda3\envs\opp

  d:\ anaconda 3 \ envs \ opp \ lib \ site-packages添加搜索路径sys.path.append(dir)模块加载顺序搜索内存中已经加载的模块搜索python的内置模块搜索sys.path路径包是一种组织和管理代码的方式,存储模块的文件夹包含模块是包自定义包-package的结构

  --_ _ init _ _。py包标志文件

  --模块1

  --模块2

  --子包(子文件夹)

   - - - __init__。巴拉圭

  ---子包模块1

  ---子包模块2包导入package_name的导入操作直接导入一个包,可以使用__init__.py中的内容,使用方式为:package _ name.func _ name。

  package _ name . class _ name . func _ name()这样访问的内容是case pkg01,p07.py # pkg01。__init__py。

  def inInit():

  打印(“我在包的初始化中”)

  # pkg01.p01.py

  班级学生():

  def __init__(self,name=NoName ,age=18):

  self.name=name

  年龄=年龄

  def say(自我):

  打印(“我的名字是{0}”。格式(自我名称))

  def sayHello():

  打印(嗨,)

  打印(我是模块p01)#案例p07.py

  导入pkg01

  Pkg01。在init()中我在init的包中导入package _ name作为P的具体用法和作用方式,这与上面的简单导入是一致的。注意,这个方法是__init__的默认导入。py内容。模块导入包中的特定模块使用package.module.func_name方法

  package.module.class.fun()

  package . module . class . var casep 08 . py # casep 08 . py

  导入pkg01.p01

  stu=pkg01.p01.Student()

  Stu.say()我是模块p01。

  我的名字是无名进口包。模块作为pm从…导入从包导入模块1、模块2、模块3导入…此导入方法不执行pkg01导入p01中__init__的内容。

  P01。从包导入*导入当前包__init__中的所有函数和类。py文件,使用func_name()方法

  class_name.func_name()

  Class_name.var case p09.py请注意本次导入# case P09.py的具体内容。

  从pkg01导入*

  inInit()

  stu=Student()我在包的初始化中

  错误:名称 student 不是从package.module import *导入包中指定的模块的所有内容都使用方法func_name()

  Class_name.func_name()经常引用开发环境中的其他模块,可以直接将其他模块的内容导入到当前包中。使用from package import *,* Importable contents __init__时,完整包或模块__all__的路径用法。py如果文件为空或者没有__all__,那么只能将__init__中的内容导入__init__如果设置了__all__的值,将根据__all__指定的子包或模块加载

  然后是content _ _ all _ _=[module1 , module2 , package1 ._ _ init中的]将不会被加载。案例pkg02,p10.py # PKG02。__init__。巴拉圭

  __all__=[p01]

  def inInit():

  打印(“T am in init of package”)

  # pkg02.p01.py

  班级学生():

  def __init__(self,name=NoName ,age=18):

  self.name=name

  年龄=年龄

  def say(自我):

  打印(“我的名字是{0}”。格式(自我名称))

  def sayHello():

  打印(嗨,)

  #这个判断语句建议永远作为程序的切入点。

  if __name__==__main__ :

  打印(我是模块p01)#案例p10.py

  从pkg02导入*

  stu=p01。学生()

  stu . say()My name is NoName namespace一个特定的前缀,用于区分不同位置同名但功能不同的函数或变量,用于防止命名冲突setName()

  Student.setName()

  Dog.setName()

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: