向一个变量添加多个方面

2024-10-06 15:20:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在和下面的课程一起练习Python技能:

class Scene(object):
    def __init__(self, settings, actors):
        self.settings = int(settings)
        self.actors = actors
        actors = []
        new_setting = settings = settings + 1

class Actor(object):
    def __init__(self, name, wage):
        self.name = name
        self.wage = wage

    def addActor(self):
        self.name = name
        self.wage = wage
        self.actors.append(name)




Scene1 = Scene(3, ["Tom Hanks", "Meg Ryan"])

Scene1.addActor(Actor("Paul Giamatti"))

我想能够添加多个功能的变量'演员'。 举个例子,我想给汤姆·汉克斯一个年龄和工资等等

我试图通过在函数addActor中定义几个子变量来实现这一点,但这给了我错误。我是否必须创建一个名为Actors的子类并以这种方式进行操作

谢谢


Tags: nameselfsettingsobjectinitdef技能actors
1条回答
网友
1楼 · 发布于 2024-10-06 15:20:58

最好的方法是为Actor定义另一个类,参见下面的示例

class Actor(object):
    def __init__(self, name, age, wage):
        self.name = name
        self.age = age
        self.wage = wage

class Scene(object):
    def __init__(self, settings):
        self.settings = settings
        self.actors = []

    def addActor(self, name, age, wage):
        actor = Actor(name, age, wage)
        self.actors.append(actor)

    def listActor(self):
        for actor in self.actors:
            print "Actor name:", actor.name
            print "Actor age:", actor.age
            print "Actor wage:", actor.wage

# Usage
scene = Scene({"light":True, 'time':'day'}) # settings can be a dictionary depends on your use case 
scene.listActor()
print scene.settings

相关问题 更多 >