- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我一直在尝试完成艰难地学习 Python,在练习 48 中,我在运行 nosetests
时继续遇到错误。我正在使用其他人已经在网站上验证过的代码工作,但无论我继续得到这个错误:
======================================================================
ERROR: tests.ex48_tests.test_directions
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
self.test(*self.arg)
File "/Users/AlexanderMariona/Documents/Home/Programming/Python/Projects/Exercise 48/tests/ex48_tests.py", line 6, in test_directions
assert_equal(lexicon.scan("north"), [('direction', 'north')])
AttributeError: 'module' object has no attribute 'scan'
我遇到此错误 6 次,每个测试函数一次。
这是我在代码中使用的内容:
词典.py:
class Lexicon(object):
directions = ['north', 'south', 'east', 'west', 'down', 'up', 'down', 'right']
verbs = ['go', 'stop', 'kill', 'eat']
stops = ['the', 'in', 'at', 'of', 'from', 'at', 'it']
nouns = ['door', 'bear', 'princess', 'cabinet']
def scan(thewords):
thewords = thewords.split()
sentence = []
for i in thewords:
if i in directions:
sentence.append(('direction', i))
elif i in verbs:
sentence.append(('verb', i))
elif i in stops:
sentence.append(('stop', i))
elif i in nouns:
sentence.append(('noun', i))
elif i.isdigit():
sentence.append(('number', convert_number(i)))
else:
sentence.append(('error', i))
return sentence
def convert_number(s):
try:
return int(s)
except ValueError:
return None
lexicon = Lexicon()
(这是 Dairylee 写的。)
ex48_tests.py:
from nose.tools import *
from ex48 import lexicon
def test_directions():
assert_equal(lexicon.scan("north"), [('direction', 'north')])
result = lexicon.scan("north south east")
assert_equal(result, [('direction', 'north'),
('direction', 'south'),
('direction', 'east')])
def test_verbs():
assert_equal(lexicon.scan("go"), [('verb', 'go')])
result = lexicon.scan("go kill eat")
assert_equal(result, [('verb', 'go'),
('verb', 'kill'),
('verb', 'eat')])
def test_stops():
assert_equal(lexicon.scan("the"), [('stop', 'the')])
result = lexicon.scan("the in of")
assert_equal(result, [('stop', 'the'),
('stop', 'in'),
('stop', 'of')])
def test_nouns():
assert_equal(lexicon.scan("bear"), [('noun', 'bear')])
result = lexicon.scan("bear princess")
assert_equal(result, [('noun', 'bear'),
('noun', 'princess')])
def test_numbers():
assert_equal(lexicon.scan("1234"), [('number', 1234)])
result = lexicon.scan("3 91234")
assert_equal(result, [('number', 3),
('number', 91234)])
def test_errors():
assert_equal(lexicon.scan("ASDFADFASDF"), [('error', 'ASDFADFASDF')])
result = lexicon.scan("bear IAS princess")
assert_equal(result, [('noun', 'bear'),
('error', 'IAS'),
('noun', 'princess')])
(这是从 LPTHW 逐字复制的。)
设置.py:
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
config = {
'name': 'Excercise 48',
'description': 'LPTHW',
'version': '0.1',
'author': 'My Name',
'author_email': 'My E-Mail',
'url': 'None',
'download_url': 'None',
'packages': ['ex48'],
'scripts': [],
'install_requires': ['nose']
}
setup(**config)
这是包的目录:
Exercise 48/
bin/
docs/
ex48/
__init__.py
lexicon.py
setup.py
tests/
__init__.py
ex48_tests.py
究竟是什么导致了这个错误?
最佳答案
发生此错误是因为模块lexicon
中没有函数scan
。 Lexicon
类中有一个方法,那么应该像方法一样调用它(注意缺少self
参数)。
另一方面,Lexicon
根本不必作为类存在,scan
可以是模块级函数。
关于python - 艰难地学习 Python : Exercise 48 - AttributeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16001728/
有没有更简单的方法是 JavaScript: if (routine !== null && routine.exercises !== undefined && routine.exerci
我希望用数字 1 到 10 填充数组 a,并从该数组中取出一个随机数,将其添加到数组 b 中,然后从数组 a 中删除该元素。我想知道最有效的方法。编辑:(练习要求我在数组中没有重复的值,并且每次调用该
我对 Go 很陌生,对 Go 中的接收器概念很困惑。这是围棋之旅中的练习。 问题正文: Remember the picture generator you wrote earlier? Let's
Write a GraphicsProgram subclass that draws a pyramid consisting of bricks arranged in horizontal ro
我正在运行 exercise monkey 来测试我的 Android 应用程序。作为我的应用程序的一部分,我播放给出单词发音的媒体文件。我已将文件放在 Android 音乐播放器无法读取的目录中。然
到目前为止,我一直在尝试通过在我的项目中立即实现线程来掌握线程。很长一段时间以来,我一直在努力做到这一点。但这并没有产生任何结果,也没有给我任何线程方面的经验。这次尝试给我的唯一印象是 C# 中的线程
我正在阅读 Golang 教程,我对它对 slice 练习中的某些值的作用有点困惑。 https://tour.golang.org/moretypes/18 这是我混淆的代码: 值 0 是完美的蓝色
在练习(或条目?)57 中,我只是不明白逻辑是如何流动的。问题是这样的:给定 (define teacupo (lambda (x) (conde ((= tea x ) #s
我已经开始阅读 Eloquent Javascript,并且有一个关于制作递归函数来检查均匀性的练习。我用几种不同的方法做到了,它很简单,但出于某种原因,我不能再让它与负数一起工作了。我让它工作,然后
我在设置项目框架时遇到问题,因为现在指南要求我使用仅限 Linux 的命令,而我在 Windows 上。在练习 46 中的一行代码之前,本项目的整个指南都没有与 Windows 的兼容性问题。 我能够
我正在从一本名为“Eloquent Javascript”的书中学习 JavaScript 我正在尝试解决此处描述的练习:http://eloquentjavascript.net/04_data.h
练习 7-1。编写一个程序,将大写字母转换为小写字母或将小写字母转换为大写字母,具体取决于在 argv[0] 中找到的调用名称。 对于那些对编写程序感兴趣的人,您可以在此处找到示例解决方案:http:
O OOO OOOOO
我无法获得“艰难学习 Python”练习 13 的额外学分。 它希望我将 argv 与 raw_input 结合起来,但我无法弄清楚。 有人可以帮我吗?例子就太好了! 非常感谢! 编辑:练习的原始代码
这是 C++ Primer 4th Edition 的问题。我正在使用这个版本,因为它是我唯一可以访问的版本。 Question: The Web site (http://www.awprofess
所以我有2个文件,一个是.cpp,另一个是标头。 这是.cpp文件 #include "exercises.h" using namespace std; /* Tema 1 */ /* Exerci
我一直在尝试完成艰难地学习 Python,在练习 48 中,我在运行 nosetests 时继续遇到错误。我正在使用其他人已经在网站上验证过的代码工作,但无论我继续得到这个错误: ==========
这个问题在这里已经有了答案: How do I complete K&R Exercise 2-4? (6 个答案) 关闭 9 年前。 所以这里的练习是设计一个程序,它接受一个字符串并删除该字符串中
你好,我在练习 18 中得到了错误“未定义的方法”,尽管我按照它写的那样做了。 class Exercise18_NamesVariablesCodeFunctions # this one is l
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 5 年前。 Improve t
我是一名优秀的程序员,十分优秀!