Python如何处理来自“其他地方”的对象
这可能是一个愚蠢的问题,但我不知道如何使用我们没有定义或导入的对象.
请考虑以下示例,使用Python的datetime模块: from datetime import date date1 = date(2019,1,1) date2 = date(2019,5) type(date2-date1) #<class 'datetime.timedelta'> type(date2) #<class 'datetime.date'> 然后date2-date1属于timedelta类,即使我们没有导入它. (我可能还会做其他示例,我们获取对象,即使我们没有定义它们.) 怎么会这样? 我是否应该考虑这些新对象只是作为内存中由其他函数返回的片段弹出,即使我们没有定义它们,也包含“本身”足够的信息,以便Python解释器可以有意义地应用type()和其他函数? 解决方法
您错误地认为导入限制了加载到内存中的内容. import限制模块全局变量中绑定的名称.
整个模块仍然被加载,该模块的依赖项也是如此.仅仅因为您的命名空间没有绑定对datetime.timedelta对象的引用并不意味着它不可用于datetime模块. 见
因此,加载和初始化模块是一个单独的步骤,每个模块执行一次.第二步绑定命名空间中的名称. 从datetime导入日期确保加载datetime模块,然后找到datetime.date并将date = datetime.date添加到命名空间. 如果要查看加载了哪些模块,请查看 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |