以下使用super()
引发了一个TypeError:为什么?
>>> from HTMLParser import HTMLParser
>>> class TextParser(HTMLParser):
... def __init__(self):
... super(TextParser, self).__init__()
... self.all_data = []
...
>>> TextParser()
(...)
TypeError: must be type, not classobj
Run Code Online (Sandbox Code Playgroud)
StackOverflow上有一个类似的问题:Python super()引发TypeError,其中错误的解释是用户类不是新式类.但是,上面的类是一个新式的类,因为它继承自object
:
>>> isinstance(HTMLParser(), object)
True
Run Code Online (Sandbox Code Playgroud)
我错过了什么?我怎么用super()
,在这里?
使用HTMLParser.__init__(self)
而不是super(TextParser, self).__init__()
工作,但我想了解TypeError.
PS:Joachim指出,作为一个新式的实例并不等同于一个object
.我多次反复阅读,因此我的困惑(基于object
实例测试的新式类实例测试示例:https://stackoverflow.com/revisions/2655651/3).
难道保证False == 0
和True == 1
,在Python(假设他们没有被用户重新分配)?例如,无论Python的版本(现有的,可能的,未来的版本)是什么,它是否以任何方式保证以下代码将始终产生相同的结果?
0 == False # True
1 == True # True
['zero', 'one'][False] # is 'zero'
Run Code Online (Sandbox Code Playgroud)
任何对官方文档的引用都将非常感谢!
编辑:正如许多答案所述,bool
继承自int
.因此,问题可以改写为:"文档是否正式表明程序员可以依赖于从整数继承的布尔值,以及值0
和1
?".这个问题与编写由于实现细节而不会失败的健壮代码有关!
我在shell中使用此命令来安装PIL:
easy_install PIL
Run Code Online (Sandbox Code Playgroud)
然后我跑去python
输入:import PIL
.但我得到这个错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
ImportError: No module named PIL
Run Code Online (Sandbox Code Playgroud)
我从未遇到过这样的问题,您怎么看?
在Python中,(?P<group_name>…)
语法允许通过其名称引用匹配的字符串:
>>> import re
>>> match = re.search('(?P<name>.*) (?P<phone>.*)', 'John 123456')
>>> match.group('name')
'John'
Run Code Online (Sandbox Code Playgroud)
"P"代表什么?我在官方文档中找不到任何提示.
我很想知道如何帮助我的学生记住这种语法.知道"P"代表什么(或可能代表什么)会很有用.
在Python中,使用Matplotlib,如何绘制带有空心圆的散点图?目标是在已经绘制的一些彩色圆盘周围绘制空心圆圈scatter()
,以便突出显示它们,理想情况下无需重绘彩色圆圈.
我试过facecolors=None
,但没有用.
我刚刚安装了matplotlib,并尝试运行其中一个示例脚本.但是我遇到了下面详述的错误.我究竟做错了什么?
from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.gca(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)
cset = ax.contour(X, Y, Z, 16, extend3d=True)
ax.clabel(cset, fontsize=9, inline=1)
plt.show()
Run Code Online (Sandbox Code Playgroud)
错误是
Traceback (most recent call last):
File "<string>", line 245, in run_nodebug
File "<module1>", line 5, in <module>
File "C:\Python26\lib\site-packages\matplotlib\figure.py", line 945, in gca
return self.add_subplot(111, **kwargs)
File "C:\Python26\lib\site-packages\matplotlib\figure.py", line 677, in add_subplot
projection_class = get_projection_class(projection)
File "C:\Python26\lib\site-packages\matplotlib\projections\__init__.py", line 61, in get_projection_class
raise ValueError("Unknown projection '%s'" % projection)
ValueError: …
Run Code Online (Sandbox Code Playgroud) 是否可以使用高级字符串格式化方法进行部分字符串格式化,类似于字符串模板safe_substitute()
函数?
例如:
s = '{foo} {bar}'
s.format(foo='FOO') #Problem: raises KeyError 'bar'
Run Code Online (Sandbox Code Playgroud) 我在Ubuntu终端(编码设置为utf-8)中运行此代码段两次,一次使用./test.py
然后使用./test.py >out.txt
:
uni = u"\u001A\u0BC3\u1451\U0001D10C"
print uni
Run Code Online (Sandbox Code Playgroud)
没有重定向它会打印垃圾.通过重定向,我得到了一个UnicodeDecodeError.有人可以解释为什么我只在第二种情况下得到错误,或者甚至更好地详细解释两种情况下幕后发生的情况?
我需要将大约十二个对象保存到文件中,然后再恢复它们.我试图使用带有泡菜和搁置的for循环,但它无法正常工作.
编辑.
我试图保存的所有对象都在同一个类中(我之前应该已经提到过),我没有意识到我可以像这样保存整个类:
def saveLoad(opt):
global calc
if opt == "save":
f = file(filename, 'wb')
pickle.dump(calc, f, 2)
f.close
print 'data saved'
elif opt == "load":
f = file(filename, 'rb')
calc = pickle.load(f)
else:
print 'Invalid saveLoad option'
Run Code Online (Sandbox Code Playgroud) 我正在使用python logger.以下是我的代码:
import os
import time
import datetime
import logging
class Logger :
def myLogger(self):
logger = logging.getLogger('ProvisioningPython')
logger.setLevel(logging.DEBUG)
now = datetime.datetime.now()
handler=logging.FileHandler('/root/credentials/Logs/ProvisioningPython'+ now.strftime("%Y-%m-%d") +'.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
return logger
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我在每个logger.info
调用的日志文件中都有多个条目.我怎么解决这个问题?
python ×10
matplotlib ×2
boolean ×1
easy-install ×1
equality ×1
geometry ×1
object ×1
regex ×1
regex-group ×1
scatter ×1
scatter-plot ×1
super ×1
superclass ×1
typeerror ×1
unicode ×1
variables ×1