首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在将__import__设置为None之后,为什么我仍然可以导入?

在将import设置为None之后,仍然可以导入的原因是因为import并不是真正的导入函数,而是一个内置函数的别名。当我们使用import语句导入模块时,实际上是调用了内置函数import来完成导入操作。

import设置为None只是将这个别名指向了None,但并没有影响到真正的导入功能。因此,即使将import设置为None,仍然可以使用import语句来导入模块。

需要注意的是,import是一个内置函数,用于动态导入模块。它可以接受一个字符串作为参数,该字符串表示要导入的模块名。import函数返回导入的模块对象。

在云计算领域中,可以使用云计算平台提供的相关服务来进行应用部署和管理。腾讯云提供了丰富的云计算产品和解决方案,包括云服务器、云数据库、云存储、人工智能等。具体推荐的腾讯云产品和产品介绍链接地址如下:

  1. 云服务器(CVM):提供弹性计算能力,支持多种操作系统和应用场景。了解更多:腾讯云云服务器
  2. 云数据库MySQL版:提供高性能、可扩展的关系型数据库服务。了解更多:腾讯云云数据库MySQL版
  3. 云存储COS:提供安全可靠的对象存储服务,适用于图片、音视频、文档等数据的存储和管理。了解更多:腾讯云云存储COS
  4. 人工智能平台AI Lab:提供丰富的人工智能算法和模型,支持图像识别、语音识别、自然语言处理等应用。了解更多:腾讯云人工智能平台AI Lab

通过使用腾讯云的云计算产品,您可以快速搭建和部署应用,提高开发效率和运行稳定性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

深入探讨 Python 的 import 机制:实现远程导入模块

而后来的版本中( Python2.6 之后),都以绝对导入默认使用的导入方式。 使用绝对路径和相对路径各有利弊: 当你开发维护自己的项目时,应当使用相对路径导入,这样可以避免硬编码带来的麻烦。...__import__ 的妙用 Python 中使用 import 关键字来实现模块/包的导入可以说是基础中的基础。...更合适的做法是,这些插件以配置的方式,写在配置文件中,然后由代码去读取你的配置,动态导入你要使用的插件,即灵活又方便,也不容易出错。...对于最高层级模块,第二个参数 None,但对于子模块或子包,第二个参数父包 __path__ 属性的值。如果相应的 __path__ 属性无法访问,引发 ModuleNotFoundError。...ok >>> my_info.name # 验证可以取得到变量 'Python编程时光' 至此,实现了一个简易的可以导入远程服务器上的模块的导入器。

99710

Python内置(2)异常、常量、globals

__loader__ __loader__设置导入加载模块时使用的加载程序对象。这个特定的模块_frozen_importlib模块中定义,并且是用于导入内置模块的内容。...np = __import__('numpy') # Same as doing 'import numpy as np' __debug__ 这是 Python 中的一个全局常量值,几乎总是设置...为什么这是一个功能有很长的技术原因,它涉及元类等高级主题,所以不幸的是,不会解释为什么它存在。...让通过解释Python如何运行你的代码来解释这一点。 1. 获取源文件,并解析语法树。保证语法正确。 2. 语法树编译为字节码。...现在,由于上面的“编译为字节码”步骤导入模块时需要花费大量时间,因此Python字节码存储(编组)到.pyc文件中,并将其存储名为__pycache__的文件夹中。

92420

深入探讨 Python 的 import 机制:实现远程导入模块

而后来的版本中( Python2.6 之后),都以绝对导入默认使用的导入方式。 使用绝对路径和相对路径各有利弊: 当你开发维护自己的项目时,应当使用相对路径导入,这样可以避免硬编码带来的麻烦。...__import__ 的妙用 Python 中使用 import 关键字来实现模块/包的导入可以说是基础中的基础。...# 使用 import .. as .. import pandas as pd # 使用 __import__ pd = __import__('pandas') 上面说 __import__...对于最高层级模块,第二个参数 None,但对于子模块或子包,第二个参数父包 __path__ 属性的值。如果相应的 __path__ 属性无法访问,引发 ModuleNotFoundError。...ok >>> my_info.name # 验证可以取得到变量 'Python编程时光' 至此,实现了一个简易的可以导入远程服务器上的模块的导入器。

63530

深入探讨Python的import机制:实现远程导入模块 | CSDN博文精选

而后来的版本中( Python2.6 之后),都以绝对导入默认使用的导入方式。 使用绝对路径和相对路径各有利弊: 当你开发维护自己的项目时,应当使用相对路径导入,这样可以避免硬编码带来的麻烦。...__import__ 的妙用 Python 中使用 import 关键字来实现模块/包的导入可以说是基础中的基础。...更合适的做法是,这些插件以配置的方式,写在配置文件中,然后由代码去读取你的配置,动态导入你要使用的插件,即灵活又方便,也不容易出错。...对于最高层级模块,第二个参数 None,但对于子模块或子包,第二个参数父包 __path__ 属性的值。如果相应的 __path__ 属性无法访问,引发 ModuleNotFoundError。...ok >>> my_info.name # 验证可以取得到变量 'Python编程时光' 至此,实现了一个简易的可以导入远程服务器上的模块的导入器。

1.5K10

你必须要了解了知识-python反射机制

python中支持反射机制的函数有getattr()、setattr()、delattr()、exec()、eval()、__import__,这些函数都可以执行字符串。...b = exec("aa = 21") print(b) # None,exec返回值None print(aa) # 21,exec执行了赋值语句,并定义了aa变量 执行复杂语句...setattr(x, 'y', v) is equivalent to ``x.y = v'' """ pass 一个特殊值设置给object对象的name属性,相当于x.y = v...__("config") print(a.KEYWORD) config是一个py脚本-config.py,内部有一个变量KEYWORD,我们要通过其他py模块来导入这个文件,使用__import__我们就可以把它导入一个对象...其实通过源码注释我们就知道了,__import__(A.B),如果fromlist空,返回的是A包,如果不为空,则返回其子包B。

1.2K21

Python面试题之Python反射详解

0x00 前言 反射,可以理解利用字符串的形式去对象中操作成员属性和方法 反射的这点特性让联想到了exec函数,也是把利用字符串的形式去让Python解释器去执行命令 Python Version...: 3.5+ 解释Python的反射,先提一个简单的需求,现在有一个简易的网站,由两个文件组成,一个是具体执行操作的commons.py文件,一个是入口文件index.py,现在需要在入口文件中设置...那现在的网站内容变多了,commons.py中有100个页面操作,那么相对应的index.py中也要使用if else 对这100个页面函数进行手动指定。 有了Python?...能体会到__import__的作用了吗,就是把字符串当做模块去导入。...import 'sys' 和 import sys 是不一样的,不信你执行一下~~要想导入字符串'sys'只能通过__import__('sys')的方式导入 等等,还没完,的网站进一步细化分工,现在又多了一层目录结构

48330

matinal:python 动态导入文件的方法

简介 实际项目中,我们可能需要在执行代码的过程中动态导入包并执行包中的相应内容,通常情况下,我们可能会将所需导入的包及对象以字符串的形式传入,例如test.test.run,下面介绍如何动态导入。...__(name,globals=None,locals=None,fromlist=(),level=0)-> module 含义:导入模块。...globals: 当前范围的全局变量,正常设置globals()。 locals:当前范围的局部变量,正常不需要使用,设置locals()。...fromlist: 控制导入的包,例_import__('a.B',…)fromlist空时返回包a,但在fromlist不为空时,返回其子模块B,理论上只要fromlist不为空,则导入的是整个的...补充 关于importlib模块,还有一个方法我们需要去注意一下,就是reload方法,但我们代码执行过程中动态的修改了某个包的内容时,想要立即生效,可以使用reload方法去重载对应的包即可。

17730

看完此文,你还会用 eval 吗?

,我们仍然可以借助内置的函数 __import__() 来导入标准库,比如 eval("__import__('os').system('ls')", {}) >>> eval("__import__(...其实仍然不安全。 原因是我们依然可以使用 Python 内部的一些类,还可以自己构造字节码,请慢慢向下看。...Python 的运行过程就是首先通过 compile 构建一个字节对象,得到代码的字节码,之后根据不同的字节码进行不同的操作,假如我们可以构造 Python 的字节码对象,那几乎可以使用 eval 来执行任何我们想要的结果...__name__ == 'bytes' ][0].fromhex('650064008301a0016401a101460064025300'),('os', 'ls', None),('__import...__' is not defined 注意,eval 里面还可以使用 eval, 伤心的是,加上参数 {'__builtins__':{}} 后仍然会报错,说明 __import__ code 对象层面依然是无法绕过的

65710

理解python的import与__import__

import 和“__import__”都是用来导入module的,但是二者还是有所不同, 可以查看帮助文档来了解其不同....上面描述了import 做的两步工作,首先是 查找一个模块,然后初始化这个模块,个人对这一步的理解是这样的: 首先是根据sys.path的值,相应的目录下查找以module name 命名的.pyc...再通过help(__import__) 查看其帮助,我们可以看到如下的片段: __import__(name, globals=None, locals=None, fromlist=(), level...这里可以看到 __import__ 是一个方法,这是__builtins__ 模块内置的一个方法,返回值是一个module,所以可以通过 __import__(ModuleName).Method的方式来使用...import 导入模块之后,就在相应的namespace 中存在了,除非明确用del 从当前的namespace中移出,否则始终可以访问到; 而用__import__ 导入,返回的是一个 模块,可以引用这个模块

1.6K20

通过内置对象理解 Python(一)

但是,如果想影响外部作用域,怎么办? 为此,可以使用关键词 nonlocal ,让它来告诉解释器:你不是要在局部作用域中定义一个新变量,而是要修改闭包作用域(外围作用域)中的变量。...可以导入 builtins 模块,并查看该作用域中的所有对象: >>> import builtins >>> dir(builtins) # 显示内容从略 由于某些未知原因,Python 全局命名空间中默认内置模块显示...__ 的作用在于导入模块的时候,被设置导入对象。...在内部,这差不多就是 Python 对导入语句的处理(但在C语言中更直接)。 __debug__ Python 中,这是一个全局常量,几乎总是被设置 True 。...导入模块时,源码“编译为字节码”要花费一定时间,而后,Python 字节码存储到 .pyc 文件中,并将其存储名为 __pycache__ 的文件夹中。

50010

Python 骚操作,花式导包的 8 种方法

一般情况下,使用 import 语句导入模块已经够用的。 但是一些特殊场景中,可能还需要其他的导入方式。 下面我会一一地给你介绍。 2....使用 __import__ __import__ 函数可用于导入模块,import 语句也会调用函数。...其定义: __import__(name[, globals[, locals[, fromlist[, level]]]]) 参数介绍: name (required): 被加载 module 的名称...使用 execfile Python 2 中有一个 execfile 函数,利用它可以用来执行一个文件。...远程导入模块 在这篇文章里(深入探讨 Python 的 import 机制:实现远程导入模块),深入剖析了导入模块的内部原理,并在最后手动实现了从远程服务器上读取模块内容,并在本地成功模块导入导入

61430

PY交易之简单沙盒绕过

写个小例子: 通过这个例子可以很清楚的看到,用自己写的cut函数,替换了系统的 __import__函数,进行import 的时候,代码逻辑真的走到了的cut函数。...写上一句话的时候,一直在想,为什么不是直接用 __import__代替 globals()['__builtins__']....import__的函数,cut函数中5:9是自己做的PrintHook,10:14 是import的过程中,Cut掉PrintHook15:20 是为了保证执行提交的代码走except的时候,导入...traceback不会报错出问题,影响下面的导入25:27 就是为了完成正常的导入了28 把自己构造的Cut塞到内置对象里30行引发一个异常,确保自己的代码cut内置对象__import__之后走except...禁止导库可能发生在比如新浪sae,导入sae模块之后可以读取数据库账号密码主机端口等信息。

1.3K70

python中动态导入文件的方法

1.简介在实际项目中,我们可能需要在执行代码的过程中动态导入包并执行包中的相应内容,通常情况下,我们可能会将所需导入的包及对象以字符串的形式传入,例如test.test.run,下面介绍如何动态导入。...,locals=None,fromlist=(),level=0)-> module含义:导入模块。...globals: 当前范围的全局变量,正常设置globals()。locals:当前范围的局部变量,正常不需要使用,设置locals()。...fromlist: 控制导入的包,例_import__('a.B',…)fromlist空时返回包a,但在fromlist不为空时,返回其子模块B,理论上只要fromlist不为空,则导入的是整个的...补充关于importlib模块,还有一个方法我们需要去注意一下,就是reload方法,但我们代码执行过程中动态的修改了某个包的内容时,想要立即生效,可以使用reload方法去重载对应的包即可。

1.8K20

python中的import,reloa

in position 1: ordinal not in range(128),python没办法处理非ascii编码的,此时需要自己设置python的默认编码,一般设置utf8的编码格式。...此时再执行sys.getdefaultencoding()就会发现编码已经被设置utf8的了,但是解释器里修改的编 码只能保证当次有效,重启解释器后,会发现,编码又被重置默认的ascii了,那么有没有办法一次...utf8的了,多次重启之后,效果相同,这是因为系统python启动的时候,自行调用该文件,设置系统的默认编码,而不需要每次都手动的加上解决代码,属于一劳永逸的解决方法。...当需要的时候,Python根据电脑默认的locale设置字节转化成字符。 Mac OX上默认的编 码是UTF-8,但是别的系统上,大部分是ASCII。...sys加载后,setdefaultencoding方法被删除了,所以我们要通过重新导入sys来设置系统编码.

73010

为什么Python的__import__需要fromlist?

Python中,如果要以动态方式导入模块,可以执行以下操作: module = __import__('module_name') 如果要导入子模块,你可能认为这只是一个简单的问题: module =...之后的import pkg.mod可以这样使用pkg.mod.func(),因为import语句引入了本地的模块pkg,这是一个具有mod属性的模块对象。...但是如果mod和mod2该模块pkg中尚未导入,那将无法生效。...__import__函数需要知道mod和mod2是它可以访问的名称,以便它可以查看他们是否是模块并且尝试导入他们。...总结 __import__函数中的fromlist实际上是没有具体含义的,你可以理解它只是一种标记,当它不为空的时候,import将为我们导入前面所写的字符串中最右边的模块。

1.2K20

Python面试题之Python反射机制

,可以使用import.现在有这样的需求,动态输入一个模块名,可以随时访问到导入模块中的方法或者变量,怎么做呢?...imp = input(“请输入你想导入的模块名:”) CC = __import__(imp) 這种方式就是通过输入字符串导入你所想导入的模块 CC.f1() # 执行模块中的f1...f = getattr(dd,inp_func,None)#作用:从导入模块中找到你需要调用的函数inp_func,然后返回一个该函数的引用.没有找到就烦会None f() # 执行该函数   上面我们就实现了...当然,上面还存在一点点小问题:那就是的模块名有可能不是本级目录中存放着。有可能是如下图存放方式: ?   那么这种方式我们该如何搞定呢?...看下面代码: dd = __import__("lib.text.commons") #这样仅仅导入了lib模块 dd = __import__("lib.text.commons",fromlist

2.4K20
领券