【问题标题】:Python 3: Importing file containing variables to be used as constantsPython 3:导入包含要用作常量的变量的文件
【发布时间】:2020-04-10 14:11:58
【问题描述】:

我想使用一个 config.py 文件,我将在其中声明一些要在 mainFile.py 中使用的常量。

我将使用大写字母来定义这些“常量变量”。 我想通过仅在 config.py 中定义常量来更轻松地配置 mainFile.py 参数。

当然,在 mainFile.py 中,这些常量的值是不会改变的。

所以,我的问题是: 如果在 mainFile.py 中我使用“From config.py import *”,那么 config.py 中定义的“常量变量”是否用作 mainFile.py 中的全局变量? 例如。在 mainFile.py 中定义的 inn 函数,是否需要将这些变量重新定义为全局变量才能使用它们?

【问题讨论】:

  • 为什么不自己试试呢?您的常量将在全局范围内
  • 如果您想考虑将配置存储在 .config/properties/ini 文件中,您应该查看 configParser

标签: python constants


【解决方案1】:

您可以简单地编写import config,您的所有常量都可以被mainFile.py 中的代码访问。

【讨论】:

    【解决方案2】:

    有两种选择:

    1. 正如@Josh 已经指出的那样,在config.py 中,您可以为变量命名,例如m=10t=52 等。然后在mainFile.pyimport config 并以config.m 访问你的变量,这将导致10。喜欢:

    y = config.m
    y = 10

    1. 第二个选项有点长。您创建一个函数,例如

    def m(): m = 10 return m

    然后在mainFile.pyimport config 并以config.m() 访问变量,这将产生10。喜欢

    z = config.m()
    z = 10
    

    【讨论】:

      【解决方案3】:

      global 如果您在某些情况下修改导入的变量并且需要将该值反映在访问该变量的所有其他位置,则需要。

      由于您只是在此处读取导入变量的值,因此不需要global。如果首先读取任何变量,它也会在函数内部搜索,然后在全局范围内搜索。因此,在函数内部不需要 global 来读取。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-25
        • 1970-01-01
        • 2021-12-28
        • 2012-09-04
        • 1970-01-01
        • 2019-12-09
        • 1970-01-01
        相关资源
        最近更新 更多