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

如何在Python中列出我自己定义的所有变量,不包括导入的变量?

在Python中,可以使用globals()函数来列出所有全局变量,使用locals()函数来列出当前作用域中的所有变量。但是这两个函数会返回包括导入的变量在内的所有变量。

如果要列出自己定义的所有变量,可以通过以下步骤实现:

  1. 使用dir()函数获取当前作用域中的所有名称(包括变量、函数、类等)。
  2. 使用type()函数判断每个名称对应的对象类型,筛选出变量类型的名称。
  3. 使用getattr()函数获取每个变量名称对应的值,即获取变量的值。
  4. 将变量名称和对应的值存储到一个字典中,作为最终的结果。

下面是一个示例代码:

代码语言:txt
复制
import types

def get_user_defined_variables():
    variables = {}
    all_names = dir()
    for name in all_names:
        obj = getattr(__main__, name)
        if isinstance(obj, types.ModuleType):
            continue
        if isinstance(obj, types.FunctionType):
            continue
        if isinstance(obj, types.TypeType):
            continue
        variables[name] = obj
    return variables

# 调用函数获取自己定义的所有变量
user_defined_variables = get_user_defined_variables()

# 打印结果
for name, value in user_defined_variables.items():
    print(name, "=", value)

这段代码会列出所有自己定义的变量,并打印出变量名和对应的值。

请注意,这段代码只能列出当前作用域中的变量,如果有嵌套函数或类的情况,需要在相应的作用域中调用get_user_defined_variables()函数来获取变量。

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

相关·内容

Python中如何定义变量?定义变量的规则是什么?

上一篇文章讲述了变量的概念和作用,下面讲解的是变量的第二个知识点 - 定义变量和定义变量名的规则,下一篇在讲解变量的使用。...一、定义变量 语法规则: 变量名 = 值 定义变量的语法规则中间的‘=’,并不是数学中等于号的意思,在编程语言中而是赋值的意思。...赋值:其实程序在执行的时候,先计算等号(‘=’)右边的值,然后把右边的值赋值给等号左边的变量名中。 注意点:变量名自定义,要满足标识符的命名规则。...二、定义变量的规则 标识符: 变量命名规范 - 标识符命名规则是Python中定义各种名字的时候的统一规范,具体规范如下: 由数字、字母、下划线组成 不能以数字开头 不能使用Python内置关键字 严格区分大小写...下面是列举的常见关键字,这些关键字不用去背,在学习Python的过程中自然就会记得的,不用就不会犯错 None True False and as break class continue

3.3K30

Python中变量的定义使用和特点

变量的使用可以分为三个步骤来和大家讲解一下,一是定义变量、二是如何使用变量、三是总结变量的特点,下面我们就来用代码一个一个说明一下吧。...一、定义变量 语法: 变量名 = 值 注意变量名的命名规范,一般个人习惯是用小驼峰命名和下划线 myName = ‘Python自学网’ # 定义变量,存储数据Python自学网【小驼峰命名】 my_name...= ‘Python’ # 定义变量,存储数据Python【下划线命名】 二、使用变量 这里用最简单的打印方法来看看结果,注意使用变量不用加单引号或者双引号,想要使用变量前提是先定义一个变量 #定义变量...myName = 'Python自学网' #打印变量(使用变量) print(myName) #定义变量 my_name = 'Python' #打印变量(使用变量) print(my_name)...变量的值发生变化的话那么变量名存储的数据值也会发生变量,所以以后要修改某个某个数据的时候只需要变量的值不用修改变量名

2.4K10
  • 如何在Bash中遍历由变量定义的数字范围

    问: 当范围由变量给出时,如何在Bash中遍历这一范围内的数字?...我知道我可以这样做(在 Bash 文档中称为“序列表达式”): for i in {1..5}; do echo $i; done 它会输出: 1 2 3 4 5 然而,我该如何用变量替换范围的任意一个端点呢...$END}; do echo $i; done 这会输出: {1..5} 答: 提问者代码不起作用的原因是花括号扩展在任何其他扩展之前执行,且其他扩展中具有特殊含义的任何字符都会在结果中保留下来。...换句话说,花括号扩展只是简单地基于文本的替换,它不会根据周围的语法环境或者花括号内部的文本进行复杂的分析或解析。这种方式确保了扩展的过程快速且不依赖于特定的语境。...如何将一个大的文本文件拆分为行数相等的小文件 在bash中:-(冒号破折号)的用法 在Bash中如何从字符串中删除固定的前缀/后缀

    23110

    JavaScript中的ES模块导入引发的vue未定义变量报错

    vue组件里,明明变量已经在 data 中定义好了,但控制台还是一直报错: [Vue warn]: Property or method "xxx" is not defined on the instance...vue 项目配置文件 config.js,然后在组件中导入 config,按理说代码没问题,但是运行会一直报错 userName、age...未定义,data 里明明已经定义好了!...通过一行一行删代码最后才排查出是 import 导致的问题,vue 的报错提示也是瞎提示,不过也怪自己对 ES模块 掌握不牢固。...Uncaught TypeError: Cannot read properties of undefined,结果 vue 这里一直提示后面的变量未定义,一开始就被误导了。...:import config from '@/config' 解决报错正确的导入方式 用 export 的单个导入方式:import { apiUrl } from '@/config' 用 export

    40850

    使用Jmeter导出导入接口自动化案例中的自定义变量

    接口自动化测试 接口自动化测试过程中,当开发了很多案例,就会涉及到很多变量,此时如果调试案例,就需要每次读取最新的变量,每次跑个全量去调试,很浪费时间 接下来介绍的导出、导入变量方法,很方便的解决了以上问题...输入调用语句,该语句为java语言,除了export_write函数会根据需要多次被调用,其他语句只需要调用一次就行: 语句 作用 import test.*; 导入jar中的类,这样就能调用所有该包中的类...,分别是jmeter中定义的变量名和变量描述,如果需要导出多个变量,只需要多次复用该函数即可 a.export_finish(); 该方法实现关闭execl文件 ?...输入调用语句,该语句为java语言: 语句 作用 import test.*; 导入jar中的类,这样就能调用所有该包中的类 Import a = new Import(); 实例化类 a.import_excel...导出的excel变量 ? 2. 导入变量的效果 ?

    1.1K21

    完美解决丨#在python中,如果引用的变量未定义,则会报告NameError: name ‘变量名‘ is not defined。

    NameError 在python中,如果引用的变量未定义,则会报告NameError: name '变量名' is not defined。 如下代码抛出了一个异常: !...提示: 一般来说,在python中,需要保证变量的定义在使用的前面。...IndexError 在python中,如果list、tuple中的元素被引用的索引值超过了元素的个数,则会报告IndexError: list index out of range。...原因: list的索引值超过了list元素的个数。 KeyError 在python中,如果dict中的key不存在,则会报告KeyError: 'key'。 如下代码抛出了一个异常: !...原因: dict中不存在address这个key。 TypeError 在python中,如果一个对象不是内置对象的实例,则会报告TypeError。 如下代码抛出了一个异常: !

    2.9K10

    Python入门到放弃 | 超简单 跟我学(八)

    如果使用以前版本的 Windows,则基本说明是相同的,不过某些步骤中的过程可能略有不同。 第八讲 模 块 你已经看到了如何在你的程序中重复使用代码 —— 只需定义一次函数就可以对其重复调用了。...如果它不是一个编译模块(即用 Python 编写的模块),那么 Python 解释器会在它的 sys.path 变量中列出来的目录中寻找它。...这在一种情形下特别有用:确定模块被导入了?还是在独立地运行。如之前提到过的,当模块第一次被导入的时候,模块的代码将被执行。我们可以通过这一点,让模块在被导入和独立运行时执行不同的操作。...我们接下来将看到我们如何在另一个 Python 程序中使用到这个模块。 需要记住的是,这个模块的位置有两种选择: 导入它的程序所处的文件夹下; sys.path 所列出的文件夹下。...注意到上面导入的 sys 模块也是列表的一部分。 为了观察 dir 函数的行为,我们定义了一个变量 a,并给它随便赋了一个值,然后调用 dir 函数,我们可以看到列表中加入了同名的值。

    85210

    Python黑帽编程2.6 模块

    Python黑帽编程2.6 模块 我们已经学习了如何在你的程序中定义一次函数而重用代码。如果你想要在其他程序中重用很多函数,那么你该如何编写程序呢?你可能已经猜到了,答案是使用模块。...模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。 模块可以从其他程序 导入以便利用它的功能。这也是我们使用Python标准库的方法。...还有一种更简单的方法 from sys import * 导入sys模块中所有可用的变量或方法。...我们接下来将看看如何在我们别的Python程序中使用这个模块。 这个模块应该被放置在我们导入它的程序的同一个目录中,或者在sys.path所列目录之一。 测试代码如下: #!...图4 2.6.5 DIR()函数 我们可以使用内建的dir函数来列出模块定义的标识符。标识符有函数、类和变量。当为dir()提供一个模块名的时候,它返回模块定义的名称列表。

    983100

    前50个Python面试问题(最受欢迎)

    这就是Python在处理循环方面与其他编程语言的不同之处。 #9)如何在Python中定义数据类型以及整数和十进制数据类型保留多少字节? 答:在Python中,无需显式定义变量的数据类型。...根据分配给变量的值,Python存储适当的数据类型。对于整数,浮点数等数字,数据长度是无限的。 #10)如何在Python中使用数组? 答: Python不支持数组。...如果是普通函数,则可以定义函数名称,传递参数并强制具有return语句。Lambda函数通常可用于简单操作,而无需使用函数名。也可以代替变量使用。 #17)如何在Python中完成异常处理?...但是,如果要从主函数开始,则应在源文件中将以下特殊变量设置为: if__name __ ==“ __main__ main() #19)列出Python中可用的一些重要模块。...问#26)Python识别哪些不同的环境变量? 回答: PYTHONPATH:此环境变量可帮助解释器确定在程序中导入的模块文件的位置。

    5.1K30

    精心总结 Python『八宗罪』,邀你来吐槽

    但 Python 并非如此。如果用「apt-get install python」安装,你都不知道自己安的是哪个版本,它可能也无法与你所需的所有代码兼容。 因此,你要安装你需要的那版 Python。...我第一次看到 Python 代码时,觉得用缩进来定义范围还挺好的,但这么做有一个巨大的缺陷。你可以进行深度嵌套,但这么做使得每一行都会很长,导致不得不在文本编辑器中换行。...Python 的话,最好用「python -v」列出所有路径,然后从列表中搜索每个目录和子目录中的每个文件。我有些朋友很喜欢 Python,但我看到他们想导入东西时,总得浏览标准模块。...类似地,有些 PHP 代码可能会定义全局变量,所以导入可以运行代码——但这种做法通常被认为很糟糕。相比之下,很多 Python 模块包含在导入期间运行的初始化函数。...如果我有一个名为「screencapture.py」的程序使用了「import screencapture」,那么它将导入自己而不是系统库。

    1.1K20

    爬虫(107)Python 3.7的超酷新功能(接近一万字,请耐心享用,而且建议收藏)

    不过,Python会pudb为您进行导入。这样,您还可以设置默认调试器。只需将PYTHONBREAKPOINT环境变量设置为您首选的调试器。请参阅本指南以获取有关如何在系统上设置环境变量的说明。...In [1]: print(e / f) 0.0 您也可以创建自己的函数并进行breakpoint()调用。以下代码在本地范围内打印所有变量。...尽管Python的类型系统具有合理的表现力,但引起麻烦的一个问题是前向引用。导入模块时将评估类型提示(或更一般而言,注释)。因此,所有名称在使用之前都必须已经定义。...但是,使用上下文变量,一个执行线程中可能有多个上下文。上下文变量的主要用例是跟踪并发异步任务中的变量。 以下示例构造了三个上下文,每个上下文都有自己的value值name。...在此示例中,导入plugins耗时约0.03秒,其中大部分时间花费在import上importlib.resources。该self列显示导入时间,不包括嵌套导入。

    1.6K30

    7大 Python 特殊技巧提升数据分析能力

    前天晚上,猴哥通过公众号文章看到这篇文章,自己看完又 get 到新的技巧。 猴哥的推荐寄语:不要小瞧一些小技巧,有些能会让你相见恨晚,后悔自己没有早点了解这个技巧,反正我是吃亏过。...本文不再详述这一工具,如欲了解更多,请阅读:https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d...%debug:交互式 debug 这可能是我最常使用的魔术命令了。 大部分数据科学家都遇到过这种情况:执行的代码块一直 break,你绝望地写了 20 个 print() 语句,想输出每个变量的内容。...%who:列出所有全局变量。 你是否遇到过,为变量赋值后却忘记变量名的情况?或者不小心删掉了负责为变量赋值的单元格?使用%who 命令,你可以得到所有全局变量的列表: ?...只需为函数或类的单元格添加 %%writefile 前缀和想要保存到的文件名即可: ? 如上所示,我们可以将创建的函数保存到 utils.py 文件中,然后就可以随意导入了。

    78010

    优化Jupyter Notebook:提示,技巧,nbextension,Productivity tips

    pip install 通过在$符号前面添加shell命令中的Python变量: 魔术命令 Magic Commands是一种快捷方式,可显着扩展NoteBook的功能 从NoteBook...➡列出所有环境变量 %env var ➡获取var的值 %env var val➡为var设定值 在shell中运行命令: %system ➡使用shell(主要用于获取当前目录,日期等) 使用以下方法将...计算完成(或失败)后播放声音 将通知与您的操作系统集成(为GNOME shell做好准备) 跳转到变量,函数或类的定义 为rpy2启用自动完成(非常适合ggplot2) 在一个漂亮的表格视图中汇总字典...3.跳转到变量/函数/类的定义 使用Alt+ click可以使用鼠标跳转到定义,或者使用Ctrl+ Alt+ B仅限键盘替换jupyterlab-go-to-definition扩展名: https:/...但是%%R到目前为止,单元格中的自动完成不包括R对象(如果已加载,也不包括ggplot函数)。

    5K20

    7个Python特殊技巧,助力你的数据分析工作之路

    本文不再详述这一工具,如欲了解更多,请阅读:https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d...IPython 魔术命令 IPython 的「魔术」是 IPython 基于 Python 标准语法的一系列提升。...%debug:交互式 debug 这可能是我最常使用的魔术命令了。 大部分数据科学家都遇到过这种情况:执行的代码块一直 break,你绝望地写了 20 个 print() 语句,想输出每个变量的内容。...%who:列出所有全局变量。 你是否遇到过,为变量赋值后却忘记变量名的情况?或者不小心删掉了负责为变量赋值的单元格?使用%who 命令,你可以得到所有全局变量的列表: ?...只需为函数或类的单元格添加 %%writefile 前缀和想要保存到的文件名即可: ? 如上所示,我们可以将创建的函数保存到 utils.py 文件中,然后就可以随意导入了。

    1.2K10

    分享7个数据分析的有用工具

    本文不再详述这一工具,如欲了解更多,请阅读:https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d...IPython 魔术命令 ” IPython 的「魔术」是 IPython 基于 Python 标准语法的一系列提升。...%debug:交互式 debug 这可能是我最常使用的魔术命令了。 大部分数据科学家都遇到过这种情况:执行的代码块一直 break,你绝望地写了 20 个 print() 语句,想输出每个变量的内容。...%who:列出所有全局变量。 你是否遇到过,为变量赋值后却忘记变量名的情况?或者不小心删掉了负责为变量赋值的单元格?使用%who 命令,你可以得到所有全局变量的列表: ?...只需为函数或类的单元格添加 %%writefile 前缀和想要保存到的文件名即可: ? 如上所示,我们可以将创建的函数保存到 utils.py 文件中,然后就可以随意导入了。

    1.2K20

    7个Python特殊技巧,助力你的数据分析工作之路

    本文不再详述这一工具,如欲了解更多,请阅读:https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d...IPython 魔术命令 IPython 的「魔术」是 IPython 基于 Python 标准语法的一系列提升。...%debug:交互式 debug 这可能是我最常使用的魔术命令了。 大部分数据科学家都遇到过这种情况:执行的代码块一直 break,你绝望地写了 20 个 print() 语句,想输出每个变量的内容。...%who:列出所有全局变量。 你是否遇到过,为变量赋值后却忘记变量名的情况?或者不小心删掉了负责为变量赋值的单元格?使用%who 命令,你可以得到所有全局变量的列表: ?...只需为函数或类的单元格添加 %%writefile 前缀和想要保存到的文件名即可: ? 如上所示,我们可以将创建的函数保存到 utils.py 文件中,然后就可以随意导入了。

    1K20

    7 个 Python 有用工具

    本文不再详述这一工具,如欲了解更多,请阅读:https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d...执行 %lsmagic 命令将提供所有可用魔术命令的列表: %debug:交互式 debug 这可能是我最常使用的魔术命令了。...%who:列出所有全局变量。 你是否遇到过,为变量赋值后却忘记变量名的情况?或者不小心删掉了负责为变量赋值的单元格?...使用%who 命令,你可以得到所有全局变量的列表: %%time:计时魔法命令 使用该命令可以获取所有计时信息。...只需为函数或类的单元格添加 %%writefile 前缀和想要保存到的文件名即可: 如上所示,我们可以将创建的函数保存到 utils.py 文件中,然后就可以随意导入了。

    91520

    7个Python特殊技巧,助力你的数据分析工作之路

    本文不再详述这一工具,如欲了解更多,请阅读:https://towardsdatascience.com/exploring-your-data-with-just-1-line-of-python-4b35ce21a82d...IPython 魔术命令 IPython 的「魔术」是 IPython 基于 Python 标准语法的一系列提升。...%debug:交互式 debug 这可能是我最常使用的魔术命令了。 大部分数据科学家都遇到过这种情况:执行的代码块一直 break,你绝望地写了 20 个 print() 语句,想输出每个变量的内容。...%who:列出所有全局变量。 你是否遇到过,为变量赋值后却忘记变量名的情况?或者不小心删掉了负责为变量赋值的单元格?使用%who 命令,你可以得到所有全局变量的列表: ?...只需为函数或类的单元格添加 %%writefile 前缀和想要保存到的文件名即可: ? 如上所示,我们可以将创建的函数保存到 utils.py 文件中,然后就可以随意导入了。

    99820

    Python基础教程(十二):模块

    本文将详细介绍Python模块的基本概念、创建模块的方法、导入模块的不同方式,并通过具体的案例来展示如何在实际项目中应用模块。...二、Python模块解析 Python模块是扩展名为.py的文件,其中包含了Python代码和定义(函数、类、变量等)。模块可以包含执行代码,但通常仅包含函数定义、类定义等可重用的代码。...Python标准库包含大量预定义的模块,如os、sys、math等,这些模块提供了许多内置的函数和类,用于执行各种常见的任务。此外,Python程序员还可以编写自定义模块,以满足特定项目的需求。...四、导入Python模块 在Python中,我们可以使用import语句来导入模块。一旦模块被导入,我们就可以在代码中通过模块名来访问其中的函数、类和其他定义。 1....六、 使用Python标准库中的模块 Python的标准库提供了丰富的模块,涵盖了从文件操作到网络编程的各个方面。下面是一个使用os模块的例子,展示如何列出当前目录下的所有文件和子目录。

    8010
    领券