【问题标题】:Does the following Python Class demonstrate the following?以下 Python 类是否演示了以下内容?
【发布时间】:2021-07-05 19:10:01
【问题描述】:

我正在通过一本教科书解决一些问题,以真正将我的头脑围绕在课堂上,并想知道是否有人可以帮助我解决一些问题。以下是我正在复习的课程:

    class Cart():
        
        def __init__(self):
            self.cart = []
            self.total = 0
        
        def add_to_cart(self, item):
            self.cart.append(item)
            self.total += item.price

如果方法 add_to_cart 将在 MobileDevice 类型或 ServiceContract 类型的对象传递给它时起作用,有谁知道 add_to_cart 方法是否演示了以下任何一项以及为什么或为什么不针对每个?

  1. 继承
  2. 多态性
  3. 鸭子打字
  4. 自上而下的设计
  5. 函数式编程

【问题讨论】:

  • 有人吗?请帮忙

标签: python python-3.x python-2.7 oop


【解决方案1】:
  1. 继承 => 错误

    类人(对象):

    def __init__(self, name):
        self.name = name
    
    def getName(self):
        return self.name
    
    def isEmployee(self):
        return False
    

    类员工(人):

    def isEmployee(self):
        return True
    

    emp = Person("User1")

    print(emp.getName(), emp.isEmployee()) -> User1 False

    emp = Employee("User2")

    print(emp.getName(), emp.isEmployee()) -> User2 True

  2. 多态性 => 假

    def add(x, y, z=0): 返回 x + y + z

    打印(添加(1, 2)) 打印(添加(1、2、3))

  3. 鸭子打字 => 假

    类特殊字符串: def len(自我): 返回 21

    如果 name == "ma​​in": 字符串 = 特殊字符串() 打印(长度(字符串))

  4. 自上而下的设计 => 错误,因为 Python 属于自下而上的方法而不是自上而下的方法

    TOP DOWN APPROACH -> 主要用于COBOL、Fortran、C等结构化编程语言

    自底向上方法 -> 主要用于面向对象的编程语言,如 C++、C#、Python。

  5. 函数式编程 => 错误

在代码中,您使用了 self,这是在创建属于 OOP 的类的方法时使用的东西,在函数式编程中,我们可以只有方法而没有类

【讨论】:

  • 嗯?你能提供一些理由来解释为什么所有 5 个都是“错误的”吗?我在想多态和自上而下是真的
  • 非常感谢您的回答。还有其他人可以提供关于是否所有 5 都是 False 的想法吗?我觉得某处应该有一个 True 因为教科书不会只给出所有 5 个例子都是 False..hm
猜你喜欢
  • 1970-01-01
  • 2017-06-07
  • 2023-03-25
  • 2011-12-22
  • 1970-01-01
  • 1970-01-01
  • 2021-11-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多