【发布时间】:2018-09-04 09:33:38
【问题描述】:
我是 Python 的 OOP 新手。到目前为止,我一直在使用 C++、C# 和 Java 等 OOP 语言。由于我必须将 C# 模块翻译成 Python,因此我遇到了概念上的差异。
我有这个 C# 类关系:
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]
}
在 python 中直观地想到的是有这样的东西:
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
或类似的东西:
class ChirpMeasDataClass:
def __init__(self,antennaLevelDataClass,diffPhaseDataClass):
self.antennaLevelDataList=[]
self.diffPhaseDataList=[]
将对象列表作为类中的属性(Python 中的实例属性)的常用方法是什么?
【问题讨论】:
-
Python 没有类型(脚注,星号,它现在有可选的类型注释......),所以你唯一要做的就是在构造函数中获取一个参数并将其分配给一个属性。就是这样。该参数应该是一个仅包含特定类型实例的列表,但所有这些都是相当不相关的,不需要以任何特定方式声明。所以,
def __init__(self, a, b): self.a = a; self.b = b真的是你所需要的。
标签: python list class oop relationship