如何接受另一个__init__语句中的对象?

时间:2016-03-20 17:04:09

标签: python oop python-3.x object

我试图制作一个口袋妖怪模拟器,我试图将一个Type对象传递给我的Move对象,但我不明白如何将其传递出去。

class Type:
    def __init__(self):
        self.name="fire"
        self.atNOR=1
        self.atFIG=1
        self.atFLY=1
        self.atPOS=1
        self.atGRO=1
        self.atROC=1
        self.atBUG=1
        self.atGHO=1
        self.atFIR=1
        self.atWAT=1
        self.atGRA=1
        self.atELE=1
        self.atPSY=1
        self.atICE=1
        self.atDRA=1
class Move:
    def __init__(self):
        self.name = "tackle"
        self.power= 0
        self.ability= "none"
        self.type= normal

这只是告诉我正常不是数据类型,我不知道如何使这一行将此正常变量定义为类型

1 个答案:

答案 0 :(得分:1)

如果您想要"输入"对象作为Move对象中的属性,您需要使用"合成模式" (所以Move有一个类型):

class Move:
    def __init__(self):
        self.name = "tackle"
        self.power = 0
        self.ability = "none"
        self.type = Type()

有关构图/继承的更多信息here

LearnPythonTheHardway并不总是学习Python的非常好的资源,但实际上这个主题非常好。

使用" Type"时要小心作为班级名称。小写type实际上是内置的Python类,可以用作元类编程的构造(或者通常创建类)。