Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:如何创建具有对象和属性的类_Python_Function_Class_Object_Attributes - Fatal编程技术网

Python:如何创建具有对象和属性的类

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

我是python新手。我正在学习面向对象编程。我想创建一个包含3个对象的类,每个对象有5个属性

我的类被称为“Slot”,这三个对象被称为“CPM”、“IOM”、“MDA”,这三个对象都有相同的五个属性

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()
这是一个好的开始。这是一个好的开始。