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

我可以从另一个文件导入两个下划线变量吗?

在Python中,可以从另一个文件导入两个下划线变量。下划线变量通常被视为私有变量,表示不希望在外部直接访问的变量。下划线变量的导入方式与普通变量相同,使用from module_name import variable_name语法即可。

假设有两个文件,文件A中定义了两个下划线变量__var1__var2,文件B想要导入这两个变量。可以按照以下步骤进行操作:

  1. 在文件A中,将下划线变量定义为全局变量,并在需要使用的地方进行赋值。例如:
代码语言:txt
复制
__var1 = 10
__var2 = "Hello"
  1. 在文件B中,使用from语句导入下划线变量。例如:
代码语言:txt
复制
from file_a import __var1, __var2
  1. 现在,文件B可以使用导入的下划线变量__var1__var2。例如:
代码语言:txt
复制
print(__var1)  # 输出:10
print(__var2)  # 输出:"Hello"

需要注意的是,虽然可以导入下划线变量,但这并不是一种良好的编程实践。下划线变量通常被视为私有变量,意味着它们应该在模块内部使用,而不是被其他模块直接访问。建议在导入变量时,使用正常的命名约定,避免导入下划线变量。

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

相关·内容

Python 中5种下划线的含义都是什么?

但是,前导下划线的确会影响模块中导入名称的方式。...假设你在一个名为my_module的模块中有以下代码: 现在,如果使用通配符模块中导入所有名称,则Python不会导入带有前导下划线的名称(除非模块定义了覆盖此行为的__all__列表): 顺便说一下...我们创建另一个扩展Test类的类,并尝试重写构造函数中添加的现有属性: 你认为foo,_bar和__baz的值会出现在这个ExtendedTest类的实例上?...2 示例 例如,在下面的循环中,我们不需要访问正在运行的索引,我们可以使用“_”来表示它只是一个临时值: 你也可以在拆分(unpacking)表达式中将单个下划线用作“不关心的”变量,以忽略特定的值...单个下划线仅仅是一个有效的变量名称,会有这个用途而已。 在下面的代码示例中,将汽车元组拆分为单独的变量,但我只对颜色和里程值感兴趣。

1.3K40
  • 终于把Python中下划线的含义弄清楚了(憋了很久了)

    如果想知道“ Python变量和方法名称中的下划线下划线分别是什么意思?”,将尽力在这里为大家找到答案。..._bar 23 看到_bar中的前一个下划线并没有阻止我们“进入”类并访问该变量的值。 这是因为Python中的单个下划线前缀仅仅是一种约定 但是,前导下划线确实会影响名称模块导入的方式。...is my_module.py: def external_func(): return 23 def _internal_func(): return 42 现在,如果使用通配符导入模块中导入所有名称...它适用于在类上下文中以两个下划线开头的任何名称。 双重领先和落后强调: __var__ 根据约定,一个单独的下划线有时用作一个名称,表示一个变量是临时的或是不重要的。...还可以在解包表达式中使用单个下划线。同样,这只是“按照约定”的意思,在Python解释器中没有触发任何特殊的行为。单个下划线只是一个有效的变量名。

    10.7K21

    Python中下划线的5种含义

    但是,前导下划线的确会影响模块中导入名称的方式。...is my_module.py: def external_func(): return 23 def _internal_func(): return 42 现在,如果使用通配符模块中导入所有名称...它适用于在类上下文中使用的两个下划线字符开头的任何名称。 有很多要吸收的内容吧。 老实说,这些例子和解释不是脑子里蹦出来的。作了一些研究和加工才弄出来。...你也可以在拆分(unpacking)表达式中将单个下划线用作“不关心的”变量,以忽略特定的值。 同样,这个含义只是“依照约定”,并不会在Python解释器中触发特殊的行为。...单个下划线仅仅是一个有效的变量名称,会有这个用途而已。 在下面的代码示例中,将汽车元组拆分为单独的变量,但我只对颜色和里程值感兴趣。

    1.5K70

    掌握 Python 中下划线的 5 个潜规则

    但是,前导下划线的确会影响模块中导入名称的方式。...is my_module.py: def external_func(): return 23 def _internal_func(): return 42 现在,如果使用通配符模块中导入所有名称...它适用于在类上下文中使用的两个下划线字符开头的任何名称。 有很多要吸收的内容吧。 老实说,这些例子和解释不是脑子里蹦出来的。作了一些研究和加工才弄出来。...你也可以在拆分(unpacking)表达式中将单个下划线用作“不关心的”变量,以忽略特定的值。同样,这个含义只是“依照约定”,并不会在Python解释器中触发特殊的行为。...单个下划线仅仅是一个有效的变量名称,会有这个用途而已。 在下面的代码示例中,将汽车元组拆分为单独的变量,但我只对颜色和里程值感兴趣。

    53520

    Python中 5 种不同的下划线含义你都知道

    但是,前导下划线的确会影响模块中导入名称的方式。...is my_module.py: def external_func(): return 23 def _internal_func(): return 42 现在,如果使用通配符模块中导入所有名称...它适用于在类上下文中使用的两个下划线字符开头的任何名称。 有很多要吸收的内容吧。 老实说,这些例子和解释不是脑子里蹦出来的。作了一些研究和加工才弄出来。...你也可以在拆分(unpacking)表达式中将单个下划线用作“不关心的”变量,以忽略特定的值。同样,这个含义只是“依照约定”,并不会在Python解释器中触发特殊的行为。...单个下划线仅仅是一个有效的变量名称,会有这个用途而已。 在下面的代码示例中,将汽车元组拆分为单独的变量,但我只对颜色和里程值感兴趣。

    88131

    python技巧之下划线

    1、python的moudles文件中__all__作用 2、__slots__用于限定类属性,如: 3、下面的小技巧可以获取私有变量: 4、下划线种类 单个下划线(_) 单下划线前缀的名称(例如_shahriar...) 双下划线前缀的名称(例如__shahriar) 前后都带有双下划线的名称(例如__init__) 5、这些命名有什么不同?...1、python的moudles文件中__all__作用 Python的moudle是很重要的一个概念,看到好多人写的moudle里都有一个__init__.py文件。...1,以一个下划线开头的命名 ,如_getFile 2,以两个下划线开头的命名 ,如__filename 3,以两个下划线开头和结尾的命名,如 init() 4,其它 首先是单下划线开头,这个被常用于模块中...,在一个模块中以单下划线开头的变量和函数被默认当作内部函数,如果使用 from a_module import * 导入时,这部分变量和函数不会被导入

    14910

    Python类中的私有属性和私有方法

    二、私有方法 私有方法和私有属性类似,方法名有两个前缀下划线'__',则表明该方法是私有方法。...如果想访问,可以通过间接的方式访问。 ? 五、Python中的下划线说明 1.不带下划线变量和方法,是普通的变量和方法,在作用域内都可以正常使用,如果是类中定义的属性,则类对象可以在任何地方使用。...2.单前缀下划线“_”的变量和方法,这种变量可以在作用域内正常使用,如果定义在类中,外部可以使用,子类也可以继承。...但是,在另一个py文件中通过from aaa import * 导入时,无法导入下划线“_”开头的变量和方法。...在另一个py文件中通过from aaa import * 导入时,也无法导入下划线“__”开头的变量和方法。

    2.9K30

    基础知识|初入Python语法和注释(三)

    在Python中,我们可以直接使用python命令执行.py文件。例如:python hello.py 。在pthon文件中,通常来讲,按照国际惯例,要使用编码格式为utf-8。...在编写代码中,每行的字符个数尽量不超过80个字符,当然,如果你的导入模块比较长,或者注释里面的URL比较长,这个可以除外。...我们可以代码上看下。 同样,在Python中,后续多少个没有关系,但是必须第一个要有。也就是说,空格的个数取决于你,但是至少得有一个。...,你知道为什么?...1.2 关于空行 空行主要是为了可读性高之外,还有其他的意义: 顶层函数和类定义,前后用两个空行隔开 编码格式声明、模块导入、常量和全局变量声明、顶级定义和执行代码之间空两行 类里面方法定义用一个空行隔开

    16010

    python0135_变量名与下划线_dunder_声明与赋值

    变量定义 回忆上次内容 变量 就是 能变的量 上次研究了 变量标识符的 规则 第一个字符 应该是 字母或下划线 合法的标识符可以包括 大小写字母 数字 下划线 还研究了字符串(str)的函数...下划线 from module import * 时 以下划线开头的变量 不被其他模块引用 ​ 所以 _a 可以作为模块内部的变量或者函数 内部变量 除非明确点名 ​ 指清名字..._pi 是可以导入的 不点名不能用?...不点名 ​ from random import * 无法导入_e ​ 上次的值 在游乐场里 _下划线 意味着上次的值 ​ 后面的下划线 在后面加上下划线 一般是为了区分已经有的标识符...id 如何查询 已有的各种变量? locals 如果 用一个变量a的值 给另一个变量b 赋值 是什么样的过程 呢?? 我们下次再说!

    38810

    多网站项目的 CSS 架构

    理解了这项原则后,我们就可以开始着手构建作为基础的全局层了。这个全局层是整个多重项目(多个网站)的起始点。 下面的示例图向我们演示了彼时司的项目需求。 ?...(更多关于文件夹和文件结构的细节,参见我的上一篇文章) 如何组织多个层 在我们的架构中,每个层都至少包含三个文件两个私有文件(局部样式文件和配置文件,称之为私有是因为它们不会被编译成一个 CSS 文件...对于不会被编译成单独文件的私有文件,我们用一个下划线( _)作为其文件名的前缀。这里的下划线代表着此文件不能单独存在。 注意:当导入私有文件时,我们书写其文件名时可以不必带上前缀下划线。...然后,任何层都可以全局目录 _partials 中导入所需模块。 下图展示了将模块分离的例子: ? 每一层都可以按需全局目录 _partials 中调用一个或多个模块。...仅用 @import 即可轻松导入另一层的组件。比如说,某些组件定义在一个“体育”项目中,而这些组件与另一个项目中的“新闻”网站有关联。那我们就可以直接把这些组件 @import 进“新闻”网站中。

    1.6K30

    Python中的魔法方法

    python中的魔法方法是一些可以让你对类添加“魔法”的特殊方法,它们经常是两个下划线包围来命名的 Python的魔法方法,也称为dunder(双下划线)方法。...我们创建了一个Python模块…/some_module/单独文件(__init__.py)。在这个文件中定义了2个变量和一个函数,只导出其中的2个(func和some_var)。...但是要注意,__all__变量只影响上面所示的* import,我们仍然可以使用显式的名称导入函数和变量,比如import some_other_var from some_module。...另一个常见的双下划线变量(模块属性)是__file__。...我们可以创建自己的方法和属性?是的,你可以,但你不应该这么做。 双下划线名称是为Python语言的未来扩展保留的,不应该用于自己的代码。

    40640

    Python模块

    这样,每个文件包含的代码就相对较少,大多数编程语言都是采用这种方式来组织代码的,在python中,一个.py文件就称之为一个模块 其中定义的所有函数或者是变量都属于这个Module。...优点 提高了代码的可维护性 提高了代码的复用度,编写代码不必从零开始,当一个模块编写完成,就可以在其他地方引用 引用其他模块,包含python内置模块和第三方模块 避免函数名和变量名等命名的冲突...一些不以下划线开头的变量(比如从其他地方 import 到当前模块的成员)可以同样被排除出去。...if __name__ == '__main__': speak() __name__作用 模块就是一个可执行的python文件,一个模块被另一个模块导入,想让模块中的某一段代码不执行,可以使用...,说明这个目录是个python包,还可以导出包中的内容 建包 新建文件夹名称为lucky_package文件夹 目录结构 project/ lucky_package/ __init__.py

    1K40

    一文掌握 __name__ 变量和在Python中的用法

    __name__ 变量(前后两个下划线)是一个特殊的Python变量。它的值取决于我们如何执行包含它的脚本。 有时候,在编写的脚本中包含的函数可能在其他脚本中也很有用。...在Python中,你可以将该脚本作为模块导入另一个脚本中。 由于这个特殊的变量,你可以决定是否要运行脚本。或者希望导入脚本中定义的函数。 __name__变量包含哪些值?...运行脚本时,__name__ 变量等于 __main__。当你导入包含脚本时,它将包含脚本的名称。 让我们看一下这两个用法,并用两个例子描述这个过程。...场景2:在另一个脚本中导入脚本 如果我们想在另一个脚本中重用myFunction,例如 importingScript.py。我们可以将 namespace .py作为模块导入。...在importingScript.py中,将 __name__ 变量设置为 __main__。通过导入nameScript,Python开始通过在模块名中添加.py来查找文件

    1.8K50

    腾讯大佬的 Python 编码规范

    Windows 平台上,可以省略第一项。 解释器声明 编码格式声明 模块注释或文档字符串 模块导入 常量和全局变量声明 顶级定义(函数或类定义) 执行代码 编码格式声明 通常,编码格式声明是必需的。...导入模块 导入总应该放在文件顶部,位于模块注释和文档字符串之后,模块全局变量和常量之前。...导入应该按照最通用到最不通用的顺序分组,分组之间空一行: 标准库导入 第三方库导入 应用程序指定导入 应当避免使用以下的导入方法: from math import * 命名规范 模块尽量使用小写命名...,首字母保持小写,尽量不要用下划线 类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头 函数名一律小写,如有多个单词,用下划线隔开 私有函数可用一个下划线开头 变量名尽量小写..., 如有多个单词,用下划线隔开 常量采用全大写,如有多个单词,使用下划线隔开 推荐阅读: 【重磅分享】零到一搭建推荐系统指南白皮书.pdf(附48页下载链接) 【重磅】千万级智能推荐系统的架构演进 小红书架构负责人

    1.5K10

    Python 里最具代表性的符号,竟如此强大

    ” 要说 Python 里使用频率最高的符号,下划线应该排第一吧?...有,就是下一部分讨论的私有变量。 四、__var用于私有变量 私有属性解决的之前的保护属性保护力度不够的问题。变量前面加上两个下划线,类里面作为属性名和方法都可以。...两个下划线的属性,被改写成带有类名前缀的变量,这样子类很难明明一个和如此复杂名字重名的属性。保证了属性不被重载,保证了其的私有性。...4.1 突破私有属性 这里“私有变量”的实现,是解释器层面给与的改写,保护了私有变量。但是这个机制并非绝对安全,因为我们依然可以通过 obj....五、__var__用于魔术方法 变量前面两个下划线,后面两个下划线。这是 Python 当中的魔术方法,一般是给系统程序调用的。

    76020

    python模块与包揭秘

    这个差异就体现在,通过from导入变量名(不应该说是变量名,但是不知道怎么形容更好),在当前文件可以直接访问,不需要再通过先前说的【模块名.属性】的形式,例如上面的例子用from语句重写: from...例如当我自定义了一个文件叫做string.py,然后另一个文件中有import string这么一条语句,目的是导入内建模块string,但是却导入自己写的string.py,这是由于在python2.7...关于包还有一个比较重要的地方,可能大家上面给的例子中也发现了这么一个文件__init__.py,这个文件是把一个目录变成一个python包的关键所在,它里面可以没有任何内容,但是必须得存在!...其实它的名字就可以知道它是用作初始化的,python在首次进行包导入时,都会执行相应的__init__.py,所以如果你在这个文件中赋值了一些变量,那么在包导入之后,这些变量会出现在该包的命名空间中,...__all__可以确定哪些模块再from *时会被导入,其实还有一种方法,可以避免哪些模块或变量导入,那就是将他们命名为单下划线开头的名称。

    48310
    领券