关于python import 的理解

我所见到过的一般是  from 文件夹  import 文件

from 一般是从同级的目录开始算起

那么 ,如果是导入上上级目录下的文件怎么办 比如:  其实相当于在加了一个路径,但是是不是永久的还不知道。

那如果是导入的是下下级的目录中的文件呢, 我想应该也是添加路径。

此外, 也可以是 from 文件及 import 文件夹 。 当然并不是真正的文件夹,因为文件夹中有__init__ 文件,比如: 这里 visual 其实是一个文件夹。

如果要引用里面的函数,则可以如下,其实window 是一个.py 文件,而Window() ,才是文件里面的函数,但是,直接写,visual.Window(), 也可以,不明白为什么

现在就有些混乱了,好像 from 可以加文件也可以直接加文件夹, 并且 import 后面可以是文件夹,可以是 文件,还可以是文件里面的函数,比如:

如果我是 from 文件夹 import 文件夹, 比如:from psychopy import visual  ,这里visual是一个文件夹,那么我想导入文件里面的一个类, 比如: apt = visual.aperture.Aperture()

这里面,aperture是一个文件,而Aperture是文件里面的一个类,但是这么写会报错,错误为,no moduel has attribute aperture  。

但是同样写法的 win = visual.window.Window(),就可以,这里window 是一个.py文件,而Window是文件里的一个类。

为什么呢,网上差了些资料,我猜是 aperture 文件里只有一个类,并且还同名了。去看了一下文件,也确实是这样,并且,window文件里面,除了WIndow类,还有其他类。

如果是 apt = visual.Aperture() 这样直接写就没事。

原文地址:https://www.cnblogs.com/zijidefengge/p/13687601.html