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

如何在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.2K30

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如何从字符串删除固定前缀/后缀

    22210

    JavaScriptES模块导入引发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

    37550

    使用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,如果dictkey不存在,则会报告KeyError: 'key'。 如下代码抛出了一个异常: !...原因: dict不存在address这个key。 TypeError 在python,如果一个对象不是内置对象实例,则会报告TypeError。 如下代码抛出了一个异常: !

    2.9K10

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

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

    84710

    Python黑帽编程2.6 模块

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

    977100

    前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.5K30

    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 文件,然后就可以随意导入了。

    77110

    优化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函数)。

    4.9K20

    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

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

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

    7410

    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 文件,然后就可以随意导入了。

    99520

    7 个 Python 有用工具

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

    91320

    分享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
    领券