Python:如何创建具有对象和属性的类
我是python新手。我正在学习面向对象编程。我想创建一个包含3个对象的类,每个对象有5个属性 我的类被称为“Slot”,这三个对象被称为“CPM”、“IOM”、“MDA”,这三个对象都有相同的五个属性Python:如何创建具有对象和属性的类,python,function,class,object,attributes,Python,Function,Class,Object,Attributes,我是python新手。我正在学习面向对象编程。我想创建一个包含3个对象的类,每个对象有5个属性 我的类被称为“Slot”,这三个对象被称为“CPM”、“IOM”、“MDA”,这三个对象都有相同的五个属性 1)SerialNumber 2)PartNumber 3)Name 4)Status 5)Type 你能给我一个例子,说明我如何做到这一点,以及如何在创建对象时打印所有5个属性 任何例子都会更受欢迎,即使它们有不同的名字。这应该可以做到: class Slot: def __in
1)SerialNumber
2)PartNumber
3)Name
4)Status
5)Type
你能给我一个例子,说明我如何做到这一点,以及如何在创建对象时打印所有5个属性
任何例子都会更受欢迎,即使它们有不同的名字。这应该可以做到:
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*)
这应该做到:
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*)
你的问题似乎很基本。你可以很容易地找到这些信息。。。 听起来你只是希望有人为你工作 但是这次让我们给它一点时间。 如果我知道你想要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'
#...
你的问题似乎很基本。你可以很容易地找到这些信息。。。 听起来你只是希望有人为你工作 但是这次让我们给它一点时间。 如果我知道你想要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'
#...
以下示例应按照您的要求执行。在我看来,让类初始值设定项打印出信息是不明智的,因此在主函数中执行手动打印。不过,改变这一点并不重要,留给读者作为练习
#! /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()
以下示例应按照您的要求执行。在我看来,让类初始值设定项打印出信息是不明智的,因此在主函数中执行手动打印。不过,改变这一点并不重要,留给读者作为练习
#! /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()
这是一个好的开始。这是一个好的开始。