У меня есть модуль, в котором есть класс и две функции. func2 вызывается первым, и он создает словари из SQL-вывода. Я хочу получить доступ к значениям в этих словарях, чтобы записать их в файл внутри func1.
Я попытался найти ответы, но не смог найти мой сценарий, поэтому разместил этот вопрос.
import sys
import os
import abc as var
class test():
def func1(self,A,B,C):
csv=sample.csv
print>>csv,"Value in dict from other function,",<not sure how to call>.tgt_dict3['table_name']
<do something else>
def func2(self,x,y,z):
<do something not related to issue>
#Call function collect_var and pass same arguments which this function received
#This function takes input and runs query on SQL and returns dictionaries with column name and values
(dict1,dict2,dict3)=var.collect_var(x,y,z)
tgt_dict1=dict1[0]
tgt_dict2=dict2[0]
tgt_dict3=dict3[0]
Как и juanpa.arrivillaga, вы можете либо передать словари в качестве аргументов, либо сделать их атрибутами class/object. Поскольку вы их не возвращаете, я буду считать, что они должны быть атрибутами класса. Это можно сделать, как показано ниже. Я буду честен, хотя, я не верю, что вы достаточно пристально посмотрели, прежде чем задавать этот вопрос, поскольку это можно было бы найти в любом учебнике по классу.
import sys
import os
import abc as var
class test():
tgt_dict1 = {}
tgt_dict2 = {}
tgt_dict3 = {}
def func1(self,A,B,C):
csv=sample.csv
print>>csv,"Value in dict from other function,",test.tgt_dict3['table_name']
<do something else>
def func2(self,x,y,z):
<do something not related to issue>
#Call function collect_var and pass same arguments which this function receive
#This function takes input and runs query on SQL and returns dictionaries with column name and values
(dict1,dict2,dict3)=var.collect_var(x,y,z)
test.tgt_dict1=dict1[0]
test.tgt_dict2=dict2[0]
test.tgt_dict3=dict3[0]