Как получить доступ к переменной из другого файла

#python #python-3.x

Вопрос:

Мое первое досье «sk_read_write.py» заключается в следующем:

   from spark_conn import *
    from Table_structure import *
    class read_write1:
        def sk_read_write1(self,schema,spark):
            df3 = spark.read.option("multiline", "true").option("mode", "PERMISSIVE").schema(schema).json(
                "C:\Users\komu0\Desktop\Read\*.json")
            print(Spark_connect_1.connection())
            df3.write.format('jdbc').options( url= Spark_connect_1.connection str(connection._port),
                                             driver='com.mysql.cj.jdbc.Driver',
                                             dbtable='sparktable',
                                             user=connection._username,
                                             password=Spark_connect_1.connection._pass).
                                             mode('append').save()
 

Мой другой файл-это spark_conn.py:

 from pyspark.sql.types import StructType,StructField, StringType, IntegerType,BooleanType,DoubleType
from aws_config import *
from Table_structure import*
class Spark_connect_1:
    dict1 = get_secret()
    def connection(self):
        dict1 = get_secret()
        _username = dict1['username']
        _pass = dict1['password']
        _host = dict1['host']
        _port = dict1['port']
        _dbname = dict1['dbname']
        spark = SparkSession.builder 
            .master("local[1]") 
            .appName("JSON_MYSQL") 
            .getOrCreate()

        return spark
 

Я хочу использовать переменную в «_port» в файле sk_read_write.
Я попытался импортировать spark_conn в файл sk_read_write и использовать
«Spark_connect_1.соединение._port» (чтобы получить имя порта), но не работает, пожалуйста, подскажите, как действовать

Ответ №1:

Вы можете получить доступ к имени порта, используя переменную класса для _port

Пример

base_file.py

 class ABC:
    _port = "Some value"

    def sample(self):

        ABC._port = "another value"

        print("Value of port is {}".format(ABC._port))
 

test_file.py

 from base_file import  ABC

#before changing value:

before = ABC()
before.sample()