我是python的新手。我正在学习面向对象的编程。我想创建一个包含3个对象的类,每个对象有5个属性。
我的类叫做“Slot”,这三个对象叫做“CPM”,“IOM”,“MDA”,所有三个对象都有相同的五个属性
1)SerialNumber
2)PartNumber
3)Name
4)Status
5)Type
你能给我一个如何做到这一点的例子,以及如何在创建对象时打印所有5个属性。
任何一个例子都会受到更多的赞赏,即使它们有不同的名字。
答案 0 :(得分:1)
这应该这样做:
class Slot:
def __init__(*parameters*):
self.cpm = CPM.CPM(*sub parameters*)
self.iom = IOM.IOM(*sub parameters*)
self.mda = MDA.MDA(*sub parameters*)
class CPM:
def __init__(*sub parameters*):
self.SerialNumber = *parameter*
self.PartNumber = *parameter*
self.Name = *parameter*
self.Status = *parameter*
self.Type = *parameter*
print 'CPM:\n\tSerialNumber: '+self.SerialNumber\n\tPartNumber: '+self.PartNumber\n\tName: '+self.Name\n\tStatus: '+self.Status\n\tType: '+self.Type
class IOM:
def __init__(*sub parameters*):
self.SerialNumber = *parameter*
self.PartNumber = *parameter*
self.Name = *parameter*
self.Status = *parameter*
self.Type = *parameter*
print 'IOM:\n\tSerialNumber: '+self.SerialNumber\n\tPartNumber: '+self.PartNumber\n\tName: '+self.Name\n\tStatus: '+self.Status\n\tType: '+self.Type
class MDA:
def __init__(*sub parameters*):
self.SerialNumber = *parameter*
self.PartNumber = *parameter*
self.Name = *parameter*
self.Status = *parameter*
self.Type = *parameter*
print 'MDA:\n\tSerialNumber: '+self.SerialNumber\n\tPartNumber: '+self.PartNumber\n\tName: '+self.Name\n\tStatus: '+self.Status\n\tType: '+self.Type
slot = Slot.Slot(*parameters*)
答案 1 :(得分:1)
你的问题似乎非常基本。你可以很容易地找到这些信息...... 听起来你只是想要一个为你工作的人。
但是让我们暂时给它一点时间。 如果我理解你想要'Slot'结构的3个实例。而已 ? 一种可能性是:
class Slot:
# the '__init__' method is the constructor
# the first argument must be 'self' (as with any method belonging to the class)
#the advantage of giving default values (here 'None') is that you do not have to care the parameter order when calling the method
def __init__(self,SerialNumber=None,PartNumber=None,
Name=None,Status=None,Type=None):
self.SerialNumber = SerialNumber
self.PartNumber = PartNumber
self.Name = Name
self.Status = Status
self.Type = Type
print('Name: ',Name,' ; SerialNumber: ',SerialNumber,
' ; PartNumber: ',PartNumber,
' ; Status: ',Status,' ; Type: ',Type)
# further in the code, you create the instances of the object Slot
CPM = Slot(Name='CPM', PartNumber='toto', Type='poo')# just to show you can give any parameter in any order
IOM = Slot(Name='IOM')
MDA = Slot(Name='MDA')
# to access the values of instances:
print('CPM name: ',CPM.Name)
print('CPM Type: ', CPM.Type)
CPM.Type = 'paa'
#...
答案 2 :(得分:1)
以下示例应按您的要求执行。有一个类初始化程序打印输出信息似乎不明智,因此在主函数中执行手动打印。改变这一点虽然微不足道,但仍留作读者的练习。
#! /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()