在模块末尾分配的变量

时间:2018-11-15 05:52:57

标签: python class variables

我有一个关于如何将变量从一个模块传递到另一个模块的快速问题。

场景:

我有2个脚本,其中1个是a.py和b.py。

## a.py
import datetime
import numpy as np
import os

class LOG:
    testid = ""
    log_f = None
    perf_log_f = None

    def __init__(self):
        self.testid = ""

def setTestId (testid, log_f , perf_log_f):
    log_v.testid = comp
    log_v.log_f = open(log_f , 'w')
    log_v.perf_log_f = open(perf_log_f, 'w')

log_v = LOG()

l已启动

## b.py
from a import *

testid = 999
log_f = "kk.log"
perf_log_f = "kk_perf.log"
setTestId (testid, log_f , perf_log_f)

#### Does this setTestId do this step?  
"log_v.log_f = open("kk.log", 'w')
"log_v.perf_log_f = open("kk_perf.log", 'w')

进行修正。因此,当我将setTestId(从a导入)调用到b.py中时,log_v = LOG()仅包含在a.py中,对吗?

如果我们将log_v分配给a.py中的另一个变量,我想检查log_v中的变量b.py是否会被覆盖

1 个答案:

答案 0 :(得分:0)

我知道了。

LOG()类在导入a.py时启动。它已分配给实例log_v

b.py中,当我调用函数setTestId (testid, log_f , perf_log_f)时,它将参数testid, log_f , perf_log_f传递到log_va.py并允许初始化类这些变量。

因此,假设我在logging()中有一个使用a.py的新函数log_v,只需导入a.py并调用函数logging(),我就能使用LOG()中包含的实例log_v访问类a.py,并对类进行任何修改或更新。此log_v也受到b.py中脚本的保护,因此如果我们在log_v中还有另一个实例或变量名b.py

,它也不会被覆盖。