gpt4 book ai didi

python - 在 Python 中从导入的文件运行代码

转载 作者:太空宇宙 更新时间:2023-11-04 10:49:29 24 4
gpt4 key购买 nike

我有两个文件,multitest.py 和 skiplist.py我们得到了 skiplist.py 作为我们无法编辑的起始代码。

multitest.py 是我应该创建并从 skiplist.py 借用函数的文件

在 skiplist.py 文件中,我们有一个类似的方法

class SkipList(object):
def __len__(self):
"""(SkipList) -> int
Return the number of items in this skip list.
"""
return self.size

在 multitest.py 中,我必须创建自己的 len 方法,但不允许我访问任何内置函数。

from skiplist import *
class MultiSet(object):
def __len__(self):
"""(MultiSet) -> int
Return the number of items in this multiset.
"""
return SkipList.__len__(self)

运行时

s = MultiSet([])
print(len(s))

我得到了错误

Traceback (most recent call last):
File "/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 134, in <module>
File "/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 56, in __len__
File "/Users/Borna/Documents/CSC148/Assignment/skiplist.py", line 39, in __len__
return self.size
builtins.AttributeError: 'MultiSet' object has no attribute 'size'

最佳答案

嗯,您的 MultiSet 没有继承自 SkipList,因此它不应该调用 SkipList 的任何方法。在本例中,如您所见,SkipList 具有 .size 属性,但 MultiSet 没有。

要解决此问题,您必须使 MultiSet 扩展 SkipList (class MultiSet(SkipList)),或实现 MultiSet.__len__ 不直接使用 SkipList 方法(例如,通过让 MultiSet 包含 SkipList 的实例并返回该实例的大小) .

关于python - 在 Python 中从导入的文件运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14861669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com