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

如何在python中从另一个模块获取变量名

在Python中,可以使用内置的globals()函数来获取另一个模块中的变量名。globals()函数返回一个字典,其中包含了当前模块中所有全局变量的名称和对应的值。

要从另一个模块获取变量名,首先需要确保该变量是在该模块中定义的全局变量。然后,可以使用import语句导入该模块,并使用模块名.变量名的方式访问该变量。

以下是一个示例,假设有两个模块:module1.pymodule2.py

module1.py中定义了一个全局变量x

代码语言:txt
复制
# module1.py
x = 10

module2.py中,我们可以导入module1模块,并使用globals()函数获取module1模块中的变量名:

代码语言:txt
复制
# module2.py
import module1

# 获取module1模块中的变量名
variable_names = [name for name in module1.__dict__ if not name.startswith('__')]

print(variable_names)  # 输出:['x']

在上述示例中,我们通过导入module1模块并使用module1.__dict__来获取该模块的字典表示。然后,我们使用列表推导式来筛选出不以双下划线开头的变量名,以排除内置变量。最后,我们打印出变量名列表['x']

需要注意的是,这种方法只能获取全局变量的名称,无法获取局部变量或函数内的变量名。如果需要获取局部变量的名称,可以考虑使用inspect模块中的相关函数。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 人工智能(AI):https://cloud.tencent.com/product/ai
  • 物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 移动开发(移动推送、移动分析):https://cloud.tencent.com/product/mpns
  • 区块链(BCS):https://cloud.tencent.com/product/bcs
  • 元宇宙(Tencent Real-Time 3D):https://cloud.tencent.com/product/trtc
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python学习笔记整理(十三)Pyth

一、模块 模块是Pyhon最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。实际的角度,模块往往对应Python程序文件。 每个文件都是一个模块,并且模块导入其他模块之后就可以使用导入模块定义的变量名。模块可以由两个语句和一个重要的内置函数进行处理。 import: 使客户端(导入者)以一个整体获取一个模块。 from:容许客户端从一个模块文件中获取特定的变量名。 reload:在不中止Python程序的情况下,提供了一个重新载入模块文件代码的方法。 在一个模块文件的顶层定义的所有变量名都成为了被导入的模块对象的属性。 模块至少有三个角色: 代码重用:模块还是定义变量名的空间,被认作是属性。可以被多个外部的客户端应用。 系统命名空间的划分: 现实共享服务和数据: 1、python程序构架 一个ptyhon程序包括了多个含有Python语句的文件。程序是作为一个主体的,顶层的文件来构造的,配合有零个或多个支持文件,在Python中这些文件称作模块。 标准模块:python自带了200多个使用的模块、成为标准连接库 import如何工作 执行三个步骤 1)、找到模块文件 2)、编译成位码(需要时) 3)、执行模块的代码来创建其所定义的对象。 在之后导入相同的模块时候,会跳过这三个步骤,而只提取内存中已加载模块对象。 搜索模块 导入模块时,不带模块的后缀名,比如.py Python搜索模块的路径: 1)、程序的主目录 2)、PTYHONPATH目录(如果已经进行了设置) 3)、标准连接库目录(一般在/usr/local/lib/python2.X/) 4)、任何的.pth文件的内容(如果存在的话).新功能,允许用户把有效果的目录添加到模块搜索路径中去 .pth后缀的文本文件中一行一行的地列出目录。 这四个组建组合起来就变成了sys.path了, >>> import sys >>> sys.path 导入时,Python会自动由左到右搜索这个列表中每个目录。 第1,第3元素是自动定义的,第2,第4可以用于扩展路径,从而包括自己的源码目录。 import b的形式可能加载 源码文件b.py 字节码文件.pyc 目录b 编译扩展模块,比如linux的b.so 用C编写的编译好的内置模块,并通过静态连接至Python ZIP文件组件,导入时自动解压压缩。 java类型,在Jython版本的python中。 .NET组件,在IronPython版本中的Python中 脚本中随处可见 object.attribute这里表达式法:多数对象都有一些可用的属性。可以通过"."运算符取出。 有些是可调用的对象。例如,函数。 第三方工具:distutils 第三方扩展,通常使用标准连接库中的distutils工具来自动安装。使用distutils的系统一般附带setup.py脚本 命令空间是一种独立完备的变量包,而变量就是命名空间对象的属性。模块的命令空间包含了代码在模块文件顶层赋值的所有变量名(也就是没有嵌套与def和class语句中) 二、模块代码编写基础 1、模块的创建和使用。 创建模块 后缀.py文本文件,模块顶层指定的所有变量名都会变成其属性。 定义一个module.py模块 name='diege' age=18 def printer(x):         print x 使用模块 import全部导入 >>> import module 属性 >>> module.name 'diege' 函数 >>> module.printer('hi') hi >>> module.printer('9')  9 from语句 from将获取(复制)模块特定变量名 from 模块名 import 需要复制的属性 from 模块名 import 需要复制的属性 as 新的属性名 from会把变量名赋值到另一个作用域,所以它就可以让我们直接在脚本中使用复制后的变量名,而不是通过模块 >>> from module import name >>> name 'diege >>> from module import name as myname >>> myname 'diege' >>> from module import printer as PR >>> PR('hi python') hi python >>> PR('99')         99 from * 语句 from 模块名 import * 取得模块顶层所有赋了值的变量名的拷贝。 模块只导入一次,因为该操作开销大 import和from是赋值语句,是可执行

05
  • 以下哪些字符可以用于定义Python标识符_if可以作为用户标识符吗

    1. 有效的Python标识符规则:(1)长度是任意长度;(2)标识符不能具有相同的名称作为关键词;(3)在Python的版本,用一个ASCII字母或下划线标识符开始,并且可以紧随其后的是字母,数字,下划线;在Python中,标识符ASCII字母、下划线和大多数非英语语言字母,只要用Unicode编码的字母可以作为主要人物,和随后的字符可以是任何主角,或任何的字符进行技术改造,包括任何在Unicode字符被认为是一个数字。(所以你可以用阿拉伯文、中文、日语和俄语字符或字符在任何其他语言支持Unicode字符集命名)2。约定:(1)不使用Python预定义的标识符的名称,所以避免使用NotImplemented Eliiipsis等名字,这可能是用于新版本的Python在未来;

    02

    一、代码风格 1、假定你的代码需要维护2、保持一致性3、考虑对象在程序中存在的方式,尤其是那些带有数据的对象4、不要做重复工作5、让注释讲故事6、奥卡姆剃刀原则1、简洁的规则2、文档字符串3、空行4、

    刚开始学的时候就要注意编码规范了,所以整理了一下,以便养成一个编码好习惯。不然以后真的不好改。 代码被读的次数远大于被写的次数。 作为一名程序员(使用任何语言),你能做出最重要的事情之一就是写出易于阅读的代码。 原则 在开始讨论Python社区所采用的具体标准或是由其他人推荐的建议之前,考虑一些总体原则非常重要。 请记住,可读性标准的目标是提升可读性。这些规则存在的目的就是为了帮助人读写代码。 1、假定你的代码需要维护 你很容易相信在某时自己所完成的工作在未来不需要添加内容或对其进行维护。在编写代码时,你很

    05

    Python学习笔记整理(十二)

    一、函数基础 函数可以计算出一个返回值。作用:最大化代码重用,最小化代码冗余,流程的分解 1、函数相关的语句和表达式 语句        例子 Calls        myfunc(‘diege','eggs',meat=lit) #使用函数 def,return,yield      def adder(a,b=1,*c):                           return a+b+c[0] global        changer():                 global x;x='new' lambda        Funcs=[lambad x:x**2,lambad x:x*3] 2、编写函数 def是可执行的代码,实时执行的,Python中所有语句都是实时执行的,if,while,def可嵌套,可以出现在任何地方,但往往包含在模块文件中, 并早模块导入时运行,函数还可以通过嵌套到if语句中去实现不同的函数定义。 def创建了一个对象并将其赋值给某一个变量名。 return将一个结果对象发送给调用者。 函数是通过赋值(对象引用)传递的。

    02
    领券