AttributeError:类型对象没有属性

2024-02-12

这是一个有效的多级继承程序。当我运行它时,它显示“AttributeError:类型对象'starts'没有属性'maths'”。我检查了类的关联,它们继承了。我是一个初学者,所以这对我的进步确实有帮助。

class starts:

    def __init__(self, ans, a, b):

        self.ans = input("Please type the operation to do the function as below \n 1. Sum \n 2. Subtract \n 3. multiply \n 4. divide \n")
        self.a = int(input("please enter the number you want to do the operation with : "))
        self.b = int(input("please enter the number you want to do the operation with : "))


class maths(starts):
    def __init__(self, sum, subtract, divide, multiply):

        self.sum = sum
        self.subtract = subtract
        self.divide = divide
        self.multiply = multiply

        def sum(self, a, b):
            print (self.a + self.b)
    #
        def subtract(self, a, b):
            print(self.a - self.b)
    #
        def divide(self, a, b):
            print(self.a / self.b)
    #
        def multiply(self, a, b):
            print(self.a * self.b)


class operations(maths):

    def __init__(self, class_a):

        #super(operations,self).__init__(self.ans, self.a, self.b)
        super().__init__(self.ans, self.a, self.b)

        self.ans = class_a.ans

        if class_a.ans == self.sum:
            print(starts.maths.sum(self.a, self.b))

        elif class_a.ans == self.subtract:
            print(starts.maths.subtract(self.a, self.b))

        elif class_a.ans == self.divide:
            print(starts.maths.divide(self.a, self.b))

        else:
            class_a.ans == self.multiply
            print(starts.maths.multiply(self.a, self.b))


starts.maths.operations()

Your operations类继承了maths类,它继承了starts类,因此所有实例变量都由__init__父类的方法可供子类使用,只需调用super().__init__():

class starts:

    def __init__(self):

        self.ans = input("Please type the operation to do the function as below \n 1. Sum \n 2. Subtract \n 3. multiply \n 4. divide \n")
        self.a = int(input("please enter the number you want to do the operation with : "))
        self.b = int(input("please enter the number you want to do the operation with : "))


class maths(starts):
    def __init__(self):
        super().__init__()

    def sum(self, a, b):
        return (self.a + self.b)

    def subtract(self, a, b):
        return(self.a - self.b)

    def divide(self, a, b):
        return(self.a / self.b)

    def multiply(self, a, b):
        return(self.a * self.b)


class operations(maths):

    def __init__(self):
        super().__init__()

        if self.ans == 'sum':
            print(self.sum(self.a, self.b))

        elif self.ans == 'subtract':
            print(self.subtract(self.a, self.b))

        elif self.ans == 'divide':
            print(self.divide(self.a, self.b))

        elif self.ans == 'multiply':
            print(self.multiply(self.a, self.b))

        else:
            print('Unknown operation: %s' % self.ans)

operations()

输入和输出示例:

Please type the operation to do the function as below 
 1. Sum 
 2. Subtract 
 3. multiply 
 4. divide 
sum
please enter the number you want to do the operation with : 3
please enter the number you want to do the operation with : 7
10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AttributeError:类型对象没有属性 的相关文章

随机推荐

  • 通过命令行获取制表符大小

    是否有一种自动方法来检索 matlab 编辑器和命令窗口的选项卡大小 是的 您可以打开首选项窗口并自行查找 但我希望它是自动化的 实际上我认为这可以推广到检索any下面的屏幕截图中显示了这些用户偏好 我很快找到了解决方案 经过深思熟虑后 最
  • C++ 创建 Windows 屏幕保护程序

    我使用 OpenGL 和 SDL 在 C 中创建了一个动画 它不使用 Windows 库 并希望将其用作 Windows 系统的屏幕保护程序 我读过一个例子 它描述了你只需更改 exe延伸至 scr 我已经这样做了并将动画作为屏幕保护程序运
  • 如何使用 php echo 显示长轮询结果

    我正在使用一个长轮询脚本 如果我附加任何文本进行测试 该脚本可以很好地工作 现在我想显示 user php 从数据 update php 收集的长轮询结果 我在 user php 页面使用了我的轮询脚本 在这里 如果我使用如下的 测试轮询
  • 作为另一个用户安装共享文件夹(vbox)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 很抱歉在这里问这个问题 但我尝试了服务器故障 但 4 天都没有得到任何答复 那里的相关问题 https serverfault com questio
  • ASP.Net 5 类库包项目中的 dnxcore50 框架支持吗?

    我正在尝试开发我的第一个 ASP Net Web 应用程序 在我的解决方案中我有两个项目 AWeb Application and Class Library Package 并注意到 Web 应用程序的框架中有这个project json
  • 如何在 Dockerfile 中指定 ENTRYPOINT 的工作目录

    Docker 映像 基于 Windows 包含一个应用程序目录 位于C App 该目录内有几个子文件夹和文件 包括一个名为process bat Dockerfile 用于构建镜像 的结尾如下 ENTRYPOINT C App proces
  • DataGridView 可调整列大小,但最后一列无法调整得更大?

    For c 0 To grd Columns Count 1 grd Columns c Resizable DataGridViewTriState True Next c 这使得我的 DataGridView 中的所有列都可以调整大小
  • Azure 服务 TopicClient 线程安全且可重用吗?

    我们正在使用 Azure SDK 将消息发布到服务总线 在 Web API 调用中 我们对每个传入请求重复执行这些任务 MessagingFactory factory MessagingFactory CreateFromConnecti
  • 计算OWL本体中子类的深度

    我正在寻找一个 SPARQL 查询 它可以返回 OWL 层次结构中指定子类的位置 我研究了几个例子 但我能达到的最好结果是计算指定超类与其子类之间的相对路径 感谢约书亚 泰勒 https stackoverflow com a 230949
  • 连接到远程 mongoDB 服务器

    我有一台使用 SSH 连接到的远程计算机 我在上面安装了 mongoDB 并且我希望远程使用它 如何使用 nodejs 和 mongoDB compass 连接到它 本地主机是IP吗 const db mongodb what do I w
  • 如何使用 Jackson Mixins 将 json 映射到具有不同结构的 java 对象

    如何转换这个json name abc city xyz 使用 Jackson mixin 到员工对象 3rd party class public class Employee public String name public Addr
  • DataGridView 动态更改数据源

    基本上 当我创建这个 DataGridView 时 我有这段代码来填充它 public void fillDataGrid IQueryable
  • Python For 循环返回最后一个值 |解释

    我有一个简单的问题 我已经解决了 但如果有人能解释一下那就太好了whyfor 循环在 python 中执行此操作 如果有更优雅的方法 如果这是一个愚蠢的问题 真的很抱歉 我已尽力尝试多种方法并查看相关问题 但我仍然不确定为什么它不起作用 我
  • 我怎样才能在 C# 中得到这个正则表达式?

    我正在尝试匹配任何具有type Data 然后将其替换为我想要的文本 下面给出了一个示例输入 可以有一个或多个 layer name cifar type Data top data top label include phase TRAI
  • 如何传递Python args和kwargs?

    虽然我对 Python 的 args 和 kwargs 有一个大致的了解 我认为 但我很难理解如何将它们从一个函数传递到另一个函数 这是我的模型 from pdb import set trace as debug from django
  • 如何在选项卡页面之前添加内容页面或视图

    我想在之前添加页面 视图TabbedPage 我怎样才能做到这一点
  • jQuery 随机块引用

    在过去的两个小时里 我一直在寻找和测试这个问题的各种解决方案 但收效甚微 所以我只能寻求帮助 我想建立一个引用数组 每个引用都有引用和一个链接 可以随机提取 除了在页面刷新时更改它们之外 我不需要任何其他东西 不过 我有一些非常美味的 CS
  • 在数据库中存储枚举值的最佳方法 - String 或 Int

    我的应用程序中有许多枚举 在某些类中用作属性类型 将这些值存储在数据库中的最佳方式是什么 作为字符串还是整数 仅供参考 我还将使用 Fluent Nhibernate 映射这些属性类型 示例代码 public enum ReportOutp
  • dplyr::n() 返回“错误:不应直接调用此函数”

    If I do dplyr mutate MeanValue mean RSSI ReadCount n 一切正常 但是当我尝试限定该函数时 dplyr mutate MeanValue mean RSSI ReadCount dplyr
  • AttributeError:类型对象没有属性

    这是一个有效的多级继承程序 当我运行它时 它显示 AttributeError 类型对象 starts 没有属性 maths 我检查了类的关联 它们继承了 我是一个初学者 所以这对我的进步确实有帮助 class starts def ini