以下示例应该按照您的要求进行。让类初始化程序打印出信息对我来说似乎并不明智,因此在主函数中执行手动打印。不过,更改它是微不足道的,留给读者作为练习。
#! /usr/bin/env python3
def main():
cpm = Widget(12, 34, 'A', True, int)
iom = Widget(56, 78, 'B', False, str)
mda = Widget(90, 12, 'C', None, bytes)
s = Slot(cpm, iom, mda)
print(s)
class Slot:
def __init__(self, cpm, iom, mda):
self.cpm = cpm
self.iom = iom
self.mda = mda
def __repr__(self):
return '{!s}({!r}, {!r}, {!r})'.format(
type(self).__name__, self.cpm, self.iom, self.mda)
class Widget:
def __init__(self, serial_number, part_number, name, status, kind):
self.serial_number = serial_number
self.part_number = part_number
self.name = name
self.status = status
self.kind = kind
def __repr__(self):
return '{!s}({!r}, {!r}, {!r}, {!r}, {!r})'.format(type(self).__name__,
self.serial_number,
self.part_number,
self.name,
self.status,
self.kind)
if __name__ == '__main__':
main()