Python OOP 和列表

2023-12-03

我是 Python 新手,它是 OOP 的东西,无法让它工作。这是我的代码:

class Tree:

    root = None;
    data = [];

    def __init__(self, equation):
        self.root = equation;

    def appendLeft(self, data):
        self.data.insert(0, data);

    def appendRight(self, data):
        self.data.append(data);

    def calculateLeft(self):
        result = [];
        for item in (self.getLeft()):
            if (type(item) == type(self)):
                data = item.calculateLeft();
            else:
                data = item;
            result.append(item);
        return result;

    def getLeft(self):
        return self.data;

    def getRight(self):
        data = self.data;
        data.reverse();
        return data;

tree2 = Tree("*");
tree2.appendRight(44);
tree2.appendLeft(20);

tree = Tree("+");
tree.appendRight(4);
tree.appendLeft(10);
tree.appendLeft(tree2);

print(tree.calculateLeft());

看起来tree2和tree正在共享列表“数据”?

目前我希望它输出类似 [[20,44], 10, 4] 的内容,但是当我

tree.appendLeft(tree2) 

I get RuntimeError: maximum recursion depth exceeded,当我什至不会appendLeft(tree2)它输出[10, 20, 44, 4](!!!)。我在这里缺少什么?我正在使用可移植Python 3.0.1。

谢谢


问题是你已经声明了data作为类变量,因此该类的所有实例共享相同的列表。相反,把self.data = []在你的__init__.

另外,去掉所有那些分号。它们是不必要的并且会使您的代码变得混乱。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python OOP 和列表 的相关文章

  • 用于将 cython 中的许多 C++ 类包装到单个共享对象的项目结构

    我在文档 邮件列表和这个问题在这里 https stackoverflow com questions 10300660 cython and distutils 但我想得到一个更直接的答案来解决我的具体情况 我正在通过尝试一点一点地包装我
  • Python:在列表理解本身中引用列表理解?

    这个想法刚刚出现在我的脑海中 假设您出于某种原因想要通过 Python 中的列表理解来获取列表的唯一元素 i if i in created comprehension else 0 for i in 1 2 1 2 3 1 2 0 0 3
  • 使用 pythonbrew 编译 Python 3.2 和 2.7 时出现问题

    我正在尝试使用构建多个版本的 python蟒蛇酿造 http pypi python org pypi pythonbrew 0 7 3 但我遇到了一些测试失败 这是在运行的虚拟机上 Ubuntu 8 04 32 位 当我使用时会发生这种情
  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • SQLAlchemy 通过关联对象声明式多对多自连接

    我有一个用户表和一个朋友表 它将用户映射到其他用户 因为每个用户可以有很多朋友 这个关系显然是对称的 如果用户A是用户B的朋友 那么用户B也是用户A的朋友 我只存储这个关系一次 除了两个用户 ID 之外 Friends 表还有其他字段 因此
  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • 如何使用Python创建历史时间线

    So I ve seen a few answers on here that helped a bit but my dataset is larger than the ones that have been answered prev
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 将图像分割成多个网格

    我使用下面的代码将图像分割成网格的 20 个相等的部分 import cv2 im cv2 imread apple jpg im cv2 resize im 1000 500 imgwidth im shape 0 imgheight i
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • NotImplementedError:无法将符号张量 (lstm_2/strided_slice:0) 转换为 numpy 数组。时间

    张量流版本 2 3 1 numpy 版本 1 20 在代码下面 define model model Sequential model add LSTM 50 activation relu input shape n steps n fe
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • 而在Lua中,它是如何处理的呢?

    我在一个中看到了这段代码Lua 风格指南 print x yes and YES or x Context local function test x print x yes and YES or x rather than if x ye
  • 使用 Boost 库生成的 UUID 与 Java 的唯一性

    我组织的一个 Android 应用程序需要在每个用户首 次启动该应用程序时为其分配一个 UUID 版本 4 目前我们使用 Boost 库 1 58 0 用于此目的 我们的 Android 应用程序将使用 JNI 运行以下代码生成 UUIDv
  • vector::erase() 未按预期工作

    for it1 prime begin it1
  • 在 Python 中将 Excel 工作表从一个工作表复制到另一个工作表

    我想做的就是用 Python 将工作表从 Excel 工作簿复制到另一个 Excel 工作簿 我想保留所有格式 彩色单元格 表格等 我有许多 Excel 文件 我想将所有文件中的第一张工作表复制到一个工作簿中 如果对任何单个工作簿进行更改
  • 如何写入资源文件?

    如果可以从源文件中读取 如下所示 string fileContent Resources Users using var reader new StringReader fileContent string line while line
  • 2 个扭曲的 SSL 证书

    我有这个代码 from twisted web server import Site from twisted web static import Data from twisted internet import reactor ssl
  • 在 R 中的变量列表上按组运行线性模型

    我有一个数据框 我需要为每个组 站点 运行 6 个 2 变量线性模型 然后 我需要将结果转换为数据框 线性模型中的第二个变量发生变化 我已经使用了该部分lapply 但我不知道如何按组运行 我已经在 SO 上找到了答案 可以回答我的部分问题
  • Tkinter 透明度遇到问题

    我在 TKinter 中使顶级小部件淡入时遇到问题 由于某种原因 小部件根本不会淡入 然后它将显示在任务栏中 但只有在单击运行此命令的按钮两次之后 它不应该出现在任务栏中 代码负责这些问题 Alpha 0 0 w1 attributes a
  • 每个序列化程序都支持 OnDeserializedAttribute 吗?

    我只是偶然发现MSDN 上的 OnDeserializedAttribute 描述指出 当应用于方法时 指定在对象图中的对象反序列化后立即调用该方法 相对于图中其他对象的反序列化顺序是不确定的 问题 是否需要具有此属性的方法any序列化器
  • 将额外参数传递给 usort 回调[重复]

    这个问题在这里已经有答案了 我有以下功能 WordPress 可以运行 但这实际上是一个 PHP 问题 他们对我的 term对象根据artist lastname每个对象的元数据中的属性 我想将一个字符串传递到 meta在第一个函数中 这将
  • Twig - 动态数组键

    目前正在开发一个基于 Symfony 的工具 我正在迭代一系列配置设置 我想要实现的目标似乎很简单 我正在努力获得一定的价值 但其中一个键必须是动态的 下面是一个没有动态密钥的工作示例 set id tmod config content
  • 什么是“访问器功能”?

    In 第 4 3 26 节标准 ECMA 262 版本的 根据属性的形式 可以表示值 直接作为数据值 原始值 对象或 函数对象 或间接通过一对访问器函数 我不明白 访问器函数 是什么意思 也没有在规范中找到访问器函数的定义 然后我在网上搜索
  • 如何在 Python 中使用 Selenium 编辑 CodeMirror?

    每次尝试将文本插入网页上的 CodeMirror 时 我都会收到以下错误消息 有谁知道如何使用selenium成功编辑codemirror WebDriverException Message unknown error Cannot re
  • OpenMP:深度优先搜索的好策略

    我正在编写一个 C 程序 该程序对封闭的骑士之旅 代码是here 我想使用 OpenMP 并行化它 我的问题是以一种创建足够程度的并行性的方式来做到这一点 现在相关部分我的代码看起来像这样 pragma omp parallel for r
  • Emacs:符号作为变量的值为空

    这是我的 emacs file setq default c basic offset 4 c default style linux setq default tab width 4 indent tabs mode t define k
  • 如何确定何时收到蓝牙文件?

    在我的应用程序中 我需要在收到蓝牙传输的文件后对其进行编辑 为了查明何时通过蓝牙接收到文件 我必须使用 BroadcastReceiver 监听什么 Intent 另外 请告诉我是否还有其他解决方案 如果用户通过 Android 操作系统获
  • 每个方面图的 Binwidth 不同

    试图理解分配唯一的binwidth对于每个因子水平geom histogram 但到目前为止还是失败了 这是可重现的数据 a lt rnorm 10 7 0 1 b lt rnorm 10 13 5 df lt data frame dat
  • 当我尝试在内核中使用 printf() 时出现错误

    我使用的是 Visual Studio 2010 和具有计算能力 2 0 的 GTX480 我尝试将 sm 设置为 2 0 但是当我尝试在内核中使用 printf 时 我得到 错误 从 device global 调用主机函数 printf
  • ACR122U NFC读写器频繁断线

    当我将 SIII Android 4 3 放在 ACR122U NFC 读卡器上时 LED 持续闪烁绿色 当我将 Samsung S4 Android 4 3 放入读卡器时 LED 会变绿直到手机位于读卡器上 在这两种情况下 NFC 均已打
  • Python OOP 和列表

    我是 Python 新手 它是 OOP 的东西 无法让它工作 这是我的代码 class Tree root None data def init self equation self root equation def appendLeft