I am new to the OOP with Python. Until now I have worked with OOP languages as C++, C#, and Java. Since I have to translate a C# module to Python, I encountered conceptional differences.
I have this C# class relationship:
internal class ChirpMeasDataClass
{
public ChirpMeasDataClass(List<AntennaLevelDataClass> AntennaLevelData, List<DiffphaseDataClass> DiffphaseData)
{
this.AntennaLevelData = AntennaLevelData;
this.DiffphaseData = DiffphaseData;
}
internal List<AntennaLevelDataClass> AntennaLevelData = new List<AntennaLevelDataClass>();
internal List<DiffphaseDataClass> DiffphaseData = new List<DiffphaseDataClass>();
}
internal class AntennaLevelDataClass
{
internal double dLevel = -10000; // [dB]
internal double dVarianzLevel = -10000; // [dB^2]
}
internal class DiffphaseDataClass
{
internal double dDiffPhase = -10000; // [°]
internal double dVarianzDiffPhase = -10000; // [°^2]
}
What intuitively commes to mind in python is to have something like this:
class AntennaLevelDataClass:
def __init__(self):
self.dLevel = -10000 # [dB]
self.dVarianzLevel = -10000 # [dB ^ 2]
class DiffPhaseDataClass:
def __init__(self):
self.dDiffPhase = -10000 # [°]
self.dVarianzDiffPhase = -10000 # [° ^ 2]
class ChirpMeasDataClass:
def __init__(self,AntennaLevelDataClass,DiffPhaseDataClass):
self.antennaLevelDataList=AntennaLevelDataClass
self.diffPhaseDataList=DiffPhaseDataClass
or something like this :
class ChirpMeasDataClass:
def __init__(self,antennaLevelDataClass,diffPhaseDataClass):
self.antennaLevelDataList=[]
self.diffPhaseDataList=[]
What is the common way to have list of Objects as an attribute in a class (instance attribute in Python)?
def __init__(self, a, b): self.a = a; self.b = bis really all you need.