我发现下面的行为至少很奇怪
def errors():
try:
ErrorErrorError
finally:
return 10
print errors()
# prints: 10
# It should raise: NameError: name 'ErrorErrorError' is not defined
当在return子句中使用finally时,异常将消失。那是窃听器吗?有任何记载吗?
但真正的问题(我将指出正确的答案)是:
python开发人员允许这种奇怪行为的原因是什么?
看两个列表理解,每个都涉及两个for子句。我们看到,如果for子句的顺序是正确的,Python就会被搞糊涂。但是如果他们走错了路,Python可以处理它。为什么?
Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> [x + y for x in ra
解释我的问题的最好方法是举个例子:
example.py:
class A(object):
integers = [1, 2, 3]
singles = [i for i in integers]
class B(object):
integers = [1, 2, 3]
pairs = [(i, j) for i in integers for j in integers]
当我在Python2下运行它时,它工作得很好,但在Python3下,我得到了B类的NameError (而不是A类):
$ python example.py
Traceback (m
在 to 中有一个小的拼写错误。根据答案,我需要处理KeyError,所以我尝试
def GetInputData(inputdict, attributelist):
result = {}
try:
result = {a: inputdict[v] for a in attributelist}
except KeyError as KE:
print "KeyError", KE
decodeok = False
else:
decodeok = True
final
在Python3中,我想检查value是string还是None。
实现此目的的一种方法是
assert type(value) in { str, NoneType }
但是NoneType在Python中的位置是什么呢?
在不进行任何导入的情况下,使用NoneType生成NameError: name 'NoneType' is not defined。
我使用的是Windows,使用的是python 3.7.7。我正在尝试创造一种高尔夫球语言。在e.中,如果您引发了一个异常(更清楚地说是NameError),如下所示:
raise NameError("Your input was not recognized as a function, variable or datatype")
然后程序自动退出。当我尝试这样做的时候:
print(NameError("Your input was not recognized as a function, variable or datatype"))
然后,它
下面是引发NameError的一些代码:
class Foo:
a = [1,2,3,4,5]
b = all(i for i in a) # works fine !
c = [2,3,4]
d = all(i in a for i in c) # raises NameError : name 'a' is not defined
我对此感到十分困惑
谢谢!
当我在python(2.6.5)程序中导入和使用一个函数时,我会得到一个错误:
from Localization import MSGR
title = Localization.MSGR("Logfile from Ctf2Rrl.")
NameError:未定义全局名称“本地化”
你能解释一下为什么吗?
致以敬意,
我有以下代码:
>>> class MyClass:
pass
>>> myObj=MyClass()
>>> type(myObj)
<type 'instance'> <==== Why it is not type MyClass ?
>>> type(MyClass)
<type 'classobj'> <=== Why it is not just 'MyClass'?
>>> isin
我正在尝试使用selenium将数据从多个网站保存到csv。
driver = webdriver.Chrome(executable_path='C:/Users/trive/Downloads/chromedriver_win32/chromedriver.exe')
templist = []
for i in range(len(data)):
driver.get(data._get_value(i,'URL'))
try:
title= driver.find_element(By.CLASS_NAME,
为什么会发生这种NameError?
(插入提示以提高可读性之前的空行。)
$ python3
Python 3.4.10 (default, Oct 4 2019, 19:39:58)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pdb
>>> def blah():
..
我读过关于新Python“关键字”async和await的文章。但是,它们既不是真正的关键字,也不是命名空间中的保留。
>>> import keyword
>>> keyword.iskeyword("async")
False
>>> async
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'async' is not defined
我试过了
matplotlib.pyplot.title("Analysis of Tsunamis in Southeast Asia")
但是Python解释器注意到了NameError: name 'matplotlib' is not defined,尽管我确信我之前导入了pyplot:
import matplotlib.pyplot
如何向我的地图添加标题?
当跨越多行的代码引发Python异常时,例如:
myfoos = [foo("bar",
"baz",
"quux",
i) for i in range(10)]
Python将报告最后一行的行号,并显示该行的代码片段:
Traceback (most recent call last):
File "test.py", line 4, in <module>
i) for i in range(10)
有时,以下代码会导致奇怪的错误:
> nil || 4
NameError: undefined local variable or method ` 4' for main:Object
> nil || []
NameError: undefined local variable or method ` ' for main:Object
原因何在?
大家好,我是python的新手。这是我的代码。我能够捕获Zero error,但不能捕获Name error。我使用的是Python 3。
import re
while True:
try:
print("Lets Solve the equation (x/2)/(x-y):")
print('Please enter 0 to exit')
x= float(input('Enter the value of x:'))
y= float(input('Enter t
我有以下程序,没有其他的,python3.3。当我运行它时。我得到了
NameError: name 'threading' is not defined
我用谷歌搜索了一下,但没有一个答案能解释我的情况。有什么线索吗?谢谢!
#!/usr/bin/python
import Utilities
import os
import sys
import getopt
import time
from queue import Queue
from threading import Thread
_db_lock=threading.Lock()
我也试过了
_db_lock=
我有一段代码
from module1 import *
feature1() # from module1
我得到一个NameError异常
NameError: global name 'feature1' is not defined
它在python main.py中工作得很好,但是当我使用pyinstaller编译时,我的可执行文件抛出了NameError异常。我该如何着手解决这个问题呢?
我尝试在内部列表中使用外部列表理解的值:
[ x for x in range(y) for y in range(3) ]
但不幸的是,这引发了一个NameError,因为名称y是未知的(尽管外部列表理解指定了它)。
这是不是Python (尝试过的2.7.3和3.2.3 )的一个限制,或者这是不能工作的一个好理由?
是否有计划摆脱这一限制?
有没有变通的方法(一些不同的语法,我可能没有弄清楚)来实现我想要的东西?
下面这行代码:
except (IOError, PermissionError, FileNotFoundError) as e:
当我使用python 2.75运行它时,给出了以下错误消息:
NameError: global name 'PermissionError' is not defined
但是在python3.3中一切都运行得很好。
想法/建议?
考虑下面的数据帧和迭代:
pdata= {'col1': [1, 2], 'col2': [3, 4]}
pdata= pd.DataFrame(data=pdata)
for i in [pdata, vdata, odata]:
i.index = i.iloc[:, 0]
如果未定义pdata、vdata或odata中的任何一个,Python将抛出错误:
NameError: name 'vdata' is not defined
有时,我想在尚未定义vdata和odata时运行该命令。告诉python对列表中已定义的对象执行
我有两个数据类,比如:
from dataclasses import dataclass
from pathlib import Path
@dataclass
class InnerDataClass:
host: str
@dataclass
class OuterDataClass:
directory: Path
host: InnerDataClass
当我调用OuterDataClass(...)时,Python在最后一行返回错误NameError: name 'InnerDataClass' is not defined。它为什么要这
提前感谢大家的帮助。我正在尝试写一个脚本,它将遍历csv文件的文件夹,在第二列中找到最小值,并打印包含它的每一行。脚本查看的csv文件如下所示:
TPN,12010,on this date,25,0.00005047619239909304377497309619
TPN,12011,on this date,23,0.00003797836224092152019127884704
TPN,12012,on this date,78,0.0001130474103447076420049393022
TPN,12020,on this date,27,0.00005671375308512
我使用python selenium测试一个表单,如果我想保存它,我会得到这个错误消息:
Error during save operation! ORA-01403: no data found
但是如果我手动保存表单,一切都会正常进行。在这两种情况下,都会保存表单。你能帮我做这个吗?我怎么才能修复它,而不是得到这个错误消息?
谢谢。
也许我对函数定义的cdef理解不正确。例如,假设我想要编写一个函数来将Python列表转换为C数组:
%%cython
cimport cython
from libc.stdlib cimport malloc, free
cdef int* list_to_array(a_list):
""" Converts a Python list into a C array """
cdef int *c_array
cdef int count, n
c_array = <int *>malloc(le
这是我的第一个问题,很抱歉.一般来说,我是python和编码的初学者,我想创建一个名为“Map”的类,其中包含以下类变量:
class Map:
height = 11
width = 21
top = [['#']*width]
middle = [['#']+[' ']*(width-2)+['#'] for i in range(height-2)]
field = top + middle + top
b = Map()
Shell:
>>> middle
我正在迭代一个数据库,并希望将键"number“的变量值添加到列表x中,前提是这个键存在。
在mongo中我会使用$exist,但我不知道如何在python中做到这一点。我试过了,但它不起作用。
for i in database:
try:
x.append(i["number"])
except NameError:
break
这不起作用,我相信有一种更优雅的方式...
我目前正在Windows10上运行Python3.7.2,我尝试使用这个代码print('Hello'+input()),但它不起作用。当我输入一个名称,例如John,在Python打印“Hello”之后,它会给我以下错误消息:
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
John
NameError: name 'John' is not defined
我试着在互联网上寻找解决方案,但大多数都在讨论Pyth
我有一个python代码,我需要在for循环和if语句之外获取它的值,并进一步使用该变量:
我的代码:
with open('text','r') as f:
for line in f.readlines():
if 'hi' in line
a='hello'
print a #variable requires outside the loop
但我得到了Nameerror: 'a' is not defined
我的apache错误日志中充满了这种重复的错误消息。虽然我的应用程序运行良好,apache继续为其提供服务,但我无法找到其他错误的原因,因为出于某种原因,这是唯一被记录的事情。 我的应用是一个运行apache2和mod-wsgi的Django应用。 NameError: name 'TypeError' is not defined
Exception ignored in: <function BaseEventLoop.__del__ at 0x7fefd6b13040>
Traceback (most recent call last):
File