I have the following project structure:
main.py
utils
----hudi.py
project
----stage.py
The main file will create an instance of the class in stage.py
, that will create an instance of the hudi utils class. What I want is to set some attributes of Stage
class as default values of the Hudi
class.
The code of hudi.py
is
class Hudi:
def __init__(self, spark):
self.spark = spark
def test_hudi(self):
print(self.spark)
My stage.py
code is:
from utils.hudi import Hudi
class Stage:
def __init__(self):
self.spark="spark"
def a(self):
hudi = Hudi(spark=self.spark)
hudi.test_hudi()
Reading the answer https://stackoverflow.com/a/15189304/9621172 I have tried with the following code:
class Hudi:
def __init__(self, spark=None):
self.spark = spark or self.spark
def test_hudi(self):
print(self.spark)
from utils.hudi import Hudi
class Stage:
def __init__(self):
self.spark="spark"
def a(self):
hudi = Hudi()
hudi.test_hudi()
This way I expected that self.spark
will be "transfered" to Hudi
class without having to explicitly pass it (let's say that I want Hudi.spark = Stage.spark
), but I get the error AttributeError: 'Hudi' object has no attribute 'spark'
. What I want is even possible?