为什么我的嵌套 python class 实例变成了元组?
Why do my nested python class instances become tuples?
我这样定义了一些 classes:
class CustomParameter():
def __init__(self, strFriendlyAttribName, strSystemAttribName):
self.FriendlyAttribName = strFriendlyAttribName
self.SystemAttribName = strSystemAttribName
class PartMaster():
AttribNameList = ["Part Number", "Name", "Standard Part", "Part Type", "ControlledBy", "PIN", "Design Responsibility"]
def __init__(self):
self._UUID = None
self.PartNumber = CustomParameter("Part Number", "V_ID"),
self.Name = CustomParameter("Name", "V_name"),
self.StandardPart = CustomParameter("Standard Part", "V508_isStandardPart"),
self.PartType = CustomParameter("Part Type", "V511_PartType"),
self.ControlledBy = CustomParameter("ControlledBy", "V511_ControlledBy"),
self.PIN = CustomParameter("PIN", "BOECACPinItemNumber"),
self.DesignResponsibility = CustomParameter("Design Responsibility", "BOECACDesignRpnse")
class Part():
def __init__(self, PartNumber):
self.PartNumber = PartNumber
#This instance wraps
self.PartMaster = PartMaster() #create new instance
test = Part("ABC")
我希望 test.PartMaster.PIN
是 CustomParameter 的一个实例,但它是一个元组 tuple: (<__main__.CustomParameter instance at 0x0000000002D724C8>,)
为什么会这样,我怎样才能不这样?
我想构造我的 classes 以便 test.PartMaster.PIN
返回我的 CustomParameter class 的实例实例。有什么想法吗?
因为 PartMaster
class 的实例变量在 class 初始化时在末尾设置了逗号:)
Python 解释为:
x = 'test',
如:
('test',)
试试这个:
def __init__(self):
self._UUID = None
self.PartNumber = CustomParameter("Part Number", "V_ID")
self.Name = CustomParameter("Name", "V_name")
self.StandardPart = CustomParameter("Standard Part", "V508_isStandardPart")
self.PartType = CustomParameter("Part Type", "V511_PartType")
self.ControlledBy = CustomParameter("ControlledBy", "V511_ControlledBy")
self.PIN = CustomParameter("PIN", "BOECACPinItemNumber")
这在我身上发生过很多次。每当我从编写大量词典切换到像这样在 classes 中设置变量时,我总是忘记逗号。但是把你的头发拉过一次,你就会永远知道要寻找什么!
我这样定义了一些 classes:
class CustomParameter():
def __init__(self, strFriendlyAttribName, strSystemAttribName):
self.FriendlyAttribName = strFriendlyAttribName
self.SystemAttribName = strSystemAttribName
class PartMaster():
AttribNameList = ["Part Number", "Name", "Standard Part", "Part Type", "ControlledBy", "PIN", "Design Responsibility"]
def __init__(self):
self._UUID = None
self.PartNumber = CustomParameter("Part Number", "V_ID"),
self.Name = CustomParameter("Name", "V_name"),
self.StandardPart = CustomParameter("Standard Part", "V508_isStandardPart"),
self.PartType = CustomParameter("Part Type", "V511_PartType"),
self.ControlledBy = CustomParameter("ControlledBy", "V511_ControlledBy"),
self.PIN = CustomParameter("PIN", "BOECACPinItemNumber"),
self.DesignResponsibility = CustomParameter("Design Responsibility", "BOECACDesignRpnse")
class Part():
def __init__(self, PartNumber):
self.PartNumber = PartNumber
#This instance wraps
self.PartMaster = PartMaster() #create new instance
test = Part("ABC")
我希望 test.PartMaster.PIN
是 CustomParameter 的一个实例,但它是一个元组 tuple: (<__main__.CustomParameter instance at 0x0000000002D724C8>,)
为什么会这样,我怎样才能不这样?
我想构造我的 classes 以便 test.PartMaster.PIN
返回我的 CustomParameter class 的实例实例。有什么想法吗?
因为 PartMaster
class 的实例变量在 class 初始化时在末尾设置了逗号:)
Python 解释为:
x = 'test',
如:
('test',)
试试这个:
def __init__(self):
self._UUID = None
self.PartNumber = CustomParameter("Part Number", "V_ID")
self.Name = CustomParameter("Name", "V_name")
self.StandardPart = CustomParameter("Standard Part", "V508_isStandardPart")
self.PartType = CustomParameter("Part Type", "V511_PartType")
self.ControlledBy = CustomParameter("ControlledBy", "V511_ControlledBy")
self.PIN = CustomParameter("PIN", "BOECACPinItemNumber")
这在我身上发生过很多次。每当我从编写大量词典切换到像这样在 classes 中设置变量时,我总是忘记逗号。但是把你的头发拉过一次,你就会永远知道要寻找什么!