переменная, назначенная в конце модуля - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть быстрый вопрос о том, как переменные передаются из одного модуля в другой.

Сценарии:

У меня есть 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 голосов
/ 19 ноября 2018

Я понял это.

LOG() Класс инициируется при импорте a.py.Он присваивается экземпляру log_v

В b.py, когда я вызываю функции setTestId (testid, log_f , perf_log_f), он передает аргументы от testid, log_f , perf_log_f до log_v до a.py и разрешает инициализациюкласс с этими переменными.

Следовательно, предположим, у меня есть новые функции logging() в a.py, которые используют log_v, просто импортируя a.py и вызывая функцию logging(), я могуполучить доступ к классу LOG(), используя экземпляр log_v, содержащийся в a.py, и внести любые изменения или обновления в класс.Этот log_v также защищен от сценариев в b.py, поэтому он не перезаписывается, если у нас также есть другой экземпляр или имя переменной log_v в b.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...