python_初始import

一、作者感悟

初次用python 的import 模块的时候我原本以为和java一样只是一个包的导入,没想到最后足足用了好久才把python的import模块弄明白,首先要知道python有三种编码,一种是面向过程,一种是函数式变成,一种是面向对象,而java只有面向过程和面向对象这两种,就导致我一直在绕了好久才从python 的import导入绕了出来。

二、初始import

作者理解:
import可以理解成,去把其他文件下 .py结尾的文件代码,导入当前文件
定义:
模块:用来从逻辑上组织pthon代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的文件名

import text#根据上面的定义就可以理解导入一个text.py的文件

那如果过我只是想导入这个文件的某个方法该怎么做

#从 text.py 文件中调用他的name,这个就给看文件当时的具体定义name是一个方法还是一个属性
from  text import name

但上面这种调用作者不支持大家这么使用,举个例子

from  text import name
name="王大傻"
print(name)

这时候系统执行的name是当前本文件的王大傻,还还会是text.py文件内的name属性,我们可以运行一下

捕获.PNG

我们在text.py文件下建立了一个变量name赋值text,运行上面的代码发现输入的内容是


捕获1.PNG

所以大家知道为什么作者不建议单独从一个py文件中引入单个方法了吧,容易造成当前文件下如果有同名的,你导入的模块会失效,为什么会产生这样的问题

from  text import name
name="王大傻"
print(name)

这段代码可以看成

name=‘text’#相当于from  text import name
name="王大傻"
print(name)

聪明的读者其实反映过来,并不是没执行只是被覆盖了
在python import的导入还有一套规则

import sys
print(sys.path)

运行上面的代码我们发现,其实python引入的包都是存在一个列表中,首相import 会先从当前文件目录下寻找结果,然后再依次去从python的系统指定的文件寻找,当我们在别的目录下写好的包,或者脚本想导入的时候该怎么做,我们可以用append方法将目录加到sys.path中

捕获2.PNG

既然现在报错了,我们就用一下append,现在分析一下我们执行的文件在,简书\文件\ceshi.py,但是我们要导入的模块text在简书\text.py下,还记得sys.path执行后打印的结果么,首先去找简书\文件\文件下有没有test目录,然后依次执行系统目录。

import os
import sys
#找到当前系统的绝对路径
apath = os.path.abspath(__file__)
#找到当前目录的上级目录
up_path1 = os.path.dirname(apath)
up_path2 = os.path.dirname(up_path1)
#添加到当前系统路径下
sys.path.append(up_path2)
import text
print(text.name)
print(sys.path)

运行后我们发现text可以在ceshi文件中使用了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,352评论 4 16
  • GitHub 上有一个 Awesome - XXX 系列的资源整理,资源非常丰富,涉及面非常广。awesome-p...
    若与阅读 19,278评论 4 417
  • 原文链接: http://www.jianshu.com/p/9c6ae64a1bd7 GitHub 上有一个 A...
    李绍俊阅读 6,180评论 0 91
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 3,115评论 1 3
  • 常见的状态码: HTTP: Status200– 服务器成功返回网页 HTTP: Status404– 请求的网页...
    蟹大喵阅读 3,020评论 0 1

友情链接更多精彩内容