次の例は、要求どおりに行う必要があります。クラス初期化子に情報を出力させるのは賢明ではないようです。そのため、main関数で手動印刷が実行されます。これを変更するのは簡単なことではなく、読者のための練習として残されています。
#! /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()
[documentation](https://docs.python.org/2/tutorial/classes.html)は、開始するのに適しています。 –