繁体   English   中英

在Python中将值从一个类传递到另一个类

[英]Passing values from one class to another class in Python

我正在研究Python上的OOP,在一句话中,我有以下内容:

class Burrito:
    def __init__(self, meat):
        self.meat = self.set_meat(meat)

    def set_meat(self, meat):
        self.meat = ["chicken", "pork", "steak", "tofu"]
        if meat in self.meat:
          self.meat = meat
        else:
          self.meat = False
        return self.meat

    def get_meat(self):
        return self.meat

    def get_cost(self, cost = 25):

        if self.meat in self.meat:
          return cost
        else:
          return 0


newBurrito = Burrito("steak")
print(newBurrito.get_cost())

此练习的目标是检查Burrito(肉)是否为“牛排”,如果是,则为25。

现在为我提供了另一个名为Meat的类,并且有了这个类,我必须重写代码以执行相同的操作,而不必仅更改Burrito类的Meat类,这是我的代码:

class Meat:
    def __init__(self, value=False):
        self.set_value(value)

    def get_value(self):
        return self.value

    def set_value(self, value):
        if value in ["chicken", "pork", "steak", "tofu"]:
            self.value = value
        else:
            self.value = False

class Burrito:
    def __init__(self, meat):
        self.meat = Meat(meat)

    def get_cost(self, cost = 25):
        if self.meat in self.meat:
          return cost
        else:
          return 0


newBurrito = Burrito("steak")
print(newBurrito.get_cost())

如您在成本法中看到的,我不知道如何将价值从Class Meat传递给Class Burrito,请您能帮我吗?

def get_cost(self, cost = 25):
    if self.meat.get_value() == "steak":
      return cost
    else:
      return 0
class Meat:
    def __init__(self, value=False):
        self.set_value(value)

    def get_value(self):
        return self.value

    def set_value(self, value):
        if value in ["chicken", "pork", "steak", "tofu"]:
            self.value = value
        else:
            self.value = False


class Burrito:
    def __init__(self, meat):
        self.meat = Meat(meat)

    def get_cost(self, cost = 25):
        if self.meat:
            return cost


newBurrito = Burrito("steak")
print(newBurrito.get_cost())

我对您的代码进行了稍微的更改。 当您在init函数中使用Meat(meat)时, Meat(meat)会构造一个对象,其中meat.value是结果。 您需要做的只是简单地判断它是否为True。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM