Python import 功能(进阶篇)
本来以为已经理解了import功能,没想到实际应用了还有这么多门道
比如,不通过模块名字,直接引入模块内的类
我们创建一个包叫ccc,然后下面的__init__里面什么也没写,都是空的
然后bbb.by里面的内容是:
def a():
print (1)
如果你要访问这个函数a
首先第一点,一个写法:
from ccc.bbb import a ,注意,他只能通过 包名.模块名来import具体函数
如果你直接用from ccc import a ,是会报警的,报警如下:
>>> from ccc import a
Traceback (most recent call last):
File "<input>", line 1, in <module>
ImportError: cannot import name 'a'
其实,关键是,如果你要通过from ccc import a,重要的是__init__的内容
如果我们把__init__内容写成下图3
from .bbb import a,这里面的 .bbb是什么意思呢?就是在同级目录下面的bbb模块,如果前面是2个点,那就是上级目录的bbb
现在,要讲一个重要概念!!!
当你导入一个包的时候,实际上是导入了这个包的__init__.py的文件,所以,如果你在__init__里面写入了其他的import功能,就等于是在初始化的时候帮忙导入了其他东西。
就比如下面的例子,他在导包的时候,就顺便导入了a这个函数!!
从这个话题引申到其他话题,我在做flask第一节课的时候一直无法理解,为什么from flask import Flask可以成功?
第一个flask是包,第二个Flask是类,但是,实际上这个Flask类是在flask包的目录下app.py里面的。
所以后来我去看了flask包的__init__.py,原来在里面,他已经帮你导入了Flask类,所以你在导入flask包的时候,就已经可以直接导Flask类了
看到里面的 from .app import Flask, Request, Response
.app就表示了在flask包下,和__init__同级的app.py
Python import 功能(进阶篇)相关推荐
- python 面向对象(进阶篇)
上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个" ...
- 【Python第六篇】Python面向对象(进阶篇)及相关(异常处理、反射)
本节内容: 类的成员 字段 方法(静态方法.类方法.普通方法) 属性 类成员的修饰符(私有成员.公有成员) 类的特殊成员 异常处理 反射 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成 ...
- 三、python基础语法进阶篇(黑马程序猿-python学习记录)
黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/ ====================================== ...
- 【Python教程】进阶篇
目录 2.1函数 2.1.1函数基础 2.1.1.1函数的定义和调用 2.1.1.2函数的作用 2.1.1.3函数的参数 2.1.1.4函数的返回值 2.1.1.5函数的作用域-LEGB 2.1.2闭 ...
- 【Python】【进阶篇】十二、Python爬虫的Xpath简明教程(十分钟入门)
目录 十二.Python爬虫的Xpath简明教程(十分钟入门) 12.1 Xpath表达式 12.2 Xpath节点 12.3 节点关系 12.4 Xpath基本语法 12.4.1 基本语法使用 12 ...
- 【Python】【进阶篇】十六、Python爬虫的浏览器实现抓包
目录 十六.Python爬虫的浏览器实现抓包 16.1 控制台界面 16.1.1 NetWork 16.1.2 Sources 16.1.3 Console 16.1.4 Application 16 ...
- Python循环之进阶篇
上一期我们简单介绍了for-in.while循环,本期我们就来继续深入学习循环结构的内容. 首先,我们先来了解一下单分支结构,我们用一个案例来形象了解一下吧! 单分支结构只有是和否两种情况 语法: i ...
- 笨办法学python3进阶篇下载_笨办法学Python 3:进阶篇
第 一部分 准备知识 1 如果不喜欢作者的个人流程怎么办 2 如果发现自己太糟糕怎么办 2 习题0 准备工作 3 程序员用的编辑器 3 Python 3.6 3 工作终端 4 pip和virtuale ...
- python xposed_Xposed插件开发进阶篇
Dalvik 孵化器 Zygote (Android系统中,所有的应用程序进程以及系统服务进程SystemServer都是由Zygote进程孕育/fork出来的)进程对应的程序是/system/bin ...
最新文章
- 执行delete触发器及示例演示
- python学费多少-Python开发学费一般多少钱
- 华硕P8B-C/2L及其他
- 转:Unity3D研究院之提取游戏资源的三个工具支持Unity5(八十四)
- 实验一 线性表、堆栈和队列的操作与实现
- roll() java_Java Calendar roll()用法及代码示例
- 随想录(最简单的windows图形编程之Easyx)
- Java网络编程之客户端中的Socket
- STL中map与hash_map容器的选择
- 58同城 | Embedding技术在房产推荐中的应用
- 电梯远程监控维护系统方案
- 四 解决问题1 只列式不计算机,小学六年级数学下册期末试题人教版
- python中的head函数_Pandas DataFrame.head()用法例子
- 浏览器端可以直接运行Python了
- NPDP产品经理小知识:安索夫矩阵
- 江南大学计算机阶段测试题,江南大学2016.09计算机应用基础(专科类)第2阶段测试题...
- 2021.11.17
- 群狼调研开展电器店神秘顾客暗访违规稽核项目
- Basler Blaze-101开发实践(1)——实时采图
- Java 包及访问控制权限