簡體   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