zoukankan      html  css  js  c++  java
  • day17

    跨文件夹导入模块

    '''
    import导入的方式,到文件结束,不能直接导入文件中的某一个变量名或者说对象

    import 文件夹.文件夹.文件夹.文件

    导模块中的.语法左侧必须为文件夹

    from 文件夹.文件夹.文件 import 变量名


    '''

    模块的两种被执行方式

    '''
    自执行和被导入执行
    __name__ = __main__
    __name__ = 模块名
    当一个py文件自执行的时候,__name__就等于__main__
    当一个py文件作为模块被导入执行,__name__就等于文件名(模块名)

    if __name__ == '__main__':
    自执行的逻辑
    pass
    if 判断语句可以帮助我们在模块被导入执行的时候不被自执行
    '''

    文件头

    '''
    # coding = utf-8   特殊注释,必须要有#
    # coding : utf-8
    可以加一些花里胡哨的东西
    比如:# -*- coding : utf-8 -*
    '''

    '''
    一系列模块的集合体,,用文件夹来管理一系列有联系功能的模块,这个文件夹我们称之为包,文件夹名就是包名

    注:.py文件就是一个模块,所以包含.py文件的文件夹实质上包,所以如果想要将文件夹当作包来使用,最好在
      文件加上__init__.py文件,如果只想当作普通文件可以不用加__init__.py文件.

    在python2中必须要有__init__.py文件,在python3中可以不加,但是解释器会自动帮你创建

    我们可以通过跨文件导模块的方式来世使用包中的模块

    在导包的文件中,产生一个与包名相同的名字,指向包的名称空间(就是__init__.py的全局名称空间)
    __init__.py文件可以管理 包可以直接点出来使用的 名字
    '''

    包的管理

    '''
    在包中采用相对导入来管理模块或模块中的名字

    在包的__init__.py文件中或者是包中任意一个模块中
    .代表当前文件的所在目录
    ..代表当前文件所在目录的上一级
    .语法不能出包,因为包外的文件都能自执行,但是拥有.开头的导入的文件不能自执行
    注:自执行需要sys.path中能够找到,也就是说要有绝对路径,但是.语法中采用的相对导入,没有绝对路径存在于环境变量中
    '''

    环境变量

    '''
    sys.path这个环境变量存在于项目中,并不属于系统,所以sys.path存活于内存中,伴随着项目的启动而创建,项目的结束而销毁,在项目运行过程中,可以对环境变量进行操作.
    sys.path这个环境变量的第一位存放着当前文件的绝对路径,而第二位存放当前项目的根目录的绝对路径
    在pycharm中一个pycharm窗口运行的所有文件与文件夹统称为项目


    '''
  • 相关阅读:
    java中的Iterator和Iterable 区别
    Ubuntu 12.04 部署 PostGIS 2.1
    postgres模板数据库
    在ubuntu 10.04 上QGIS的安装步骤
    js----解决异步之Generator && async
    js----promise.all() promise.race()
    js----异步之Promise,Generator,Async
    js----CSRF-跨站请求伪造攻击
    js----js实现继承的方式及其优缺点
    vue----nextTick获取最新dom结构
  • 原文地址:https://www.cnblogs.com/zhuqihui/p/10822295.html
Copyright © 2011-2022 走看看