我知道有很多人就这个问题提出问题,但我没有看到我的具体问题.子类化时,您可以覆盖__init__()与覆盖任何其他方法相同的方式.我的问题是为什么在下面的例子中这似乎没有正常工作:
import random
class MyRand(random.Random):
def __init__(self, myvar1, myvar2, x=None):
# ( ... my code ...)
super(MyRand, self).__init__(x)
Run Code Online (Sandbox Code Playgroud)
请记住,Random构造函数具有以下签名:__init__(self, x=None)where x是可选种子.我想在我的子类中保留该功能,但我也想要两个必需的变量,myvar1和myvar2.
但是,当您尝试实例化(没有种子)时会出现错误:
MyRand('var1', 'var2')
TypeError: seed expected at most 1 arguments, got 2
Run Code Online (Sandbox Code Playgroud)
这是因为python认为你想要Random的构造函数并传递你的两个参数'var1'和'var2'作为种子.种子(从内部Random的构造函数调用)只需要1个参数,因此您会收到错误.
但是,如果你这样做
MyRand(myvar1='var1', myvar2='var2')
Run Code Online (Sandbox Code Playgroud)
这是有效的,这里python知道你传递它的两个必需变量而不传递可选种子.
但我认为第一种情况也应该奏效.这是怎么回事?
我有一个Java项目。
我有一个附加了处理程序的JFrame像这样
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
this.setEnabled(true);
}
});
Run Code Online (Sandbox Code Playgroud)
但是,在该框架上,我还具有一个关闭按钮(以使其更加用户友好),并且该“关闭”按钮调用框架处理方法。现在,当我通过单击右上角的小x按钮关闭框架时,将调用WindowListener。但是,当我调用dispose方法时,该事件不会触发。
我应该调用其他方法关闭它,以便WindowListener触发,或者实现另一个侦听器吗?
我几乎没有创建新字典的场景:
我的代码是:
# input dictionary
data =[
{'name': 'foo', 'rank': 3, 'game': 'football', 'total': 1},
{'name': 'bar', 'rank': 5, 'game': 'hockey', 'total': 0},
{'name': 'foo', 'rank': 7, 'game': 'tennis', 'total': 0},
{'name': 'foo', 'rank': 2, 'game': 'cricket', 'total': 2},
{'name': 'bar', 'rank': 1, 'game': 'cricket', 'total': 8},
]
result_list = []
merged_data = {}
result_data = {}
# Get the list of dict if key 'total' value is not zero
dict_without_total = …Run Code Online (Sandbox Code Playgroud) Python新手在这里.我正在阅读基于Django的Taiga项目的部分代码.我无法理解一行代码.
class Response(SimpleTemplateResponse):
def __init__(self, data=None, status=None,
template_name=None, headers=None,
exception=False, content_type=None):
super().__init__(None, status=status)
self.data = data
self.template_name = template_name
self.exception = exception
self.content_type = content_type
if headers:
for name, value in six.iteritems(headers):
self[name] = value
Run Code Online (Sandbox Code Playgroud)
我不太明白最后一行.self [name] = value.这究竟意味着什么?这会创造一个字吗?如果是,我如何调用此词典或在课堂外引用此词典?如果没有,它会做什么?
我有字符串列表:
['[12 9 15]','[98 12 18]','[56 45 45]']
Run Code Online (Sandbox Code Playgroud)
我想把它转换成
[[12,9,15],[98,12,18],[56,45,45]]
Run Code Online (Sandbox Code Playgroud) 我正在解析 csv 文件,但收到以下错误
import os
import csv
from collections import defaultdict
demo_data = defaultdict(list)
if os.path.exists("infoed_daily _file.csv"):
f = open("infoed_daily _file.csv", "rt")
csv_reader = csv.DictReader(f)
line_no = 0
for line in csv_reader:
line_no +=1
print(line,line_no)
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 2483: character maps to
<undefined>
Run Code Online (Sandbox Code Playgroud)
请指教。
谢谢..-Prasanna.K
我正在尝试运行一个项目
但它给出了以下错误
Traceback (most recent call last):
File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run
self.result = application(self.environ, self.start_response)
File "/usr/local/lib/python2.7/dist-packages/django/contrib/staticfiles/handlers.py", line 63, in __call__
return self.application(environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 170, in __call__
self.load_middleware()
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 52, in load_middleware
mw_instance = mw_class()
File "/usr/local/lib/python2.7/dist-packages/django/contrib/sessions/middleware.py", line 11, in __init__
engine = import_module(settings.SESSION_ENGINE)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named django.sessions
[08/Sep/2015 02:37:00] "GET / HTTP/1.1" 500 59
Run Code Online (Sandbox Code Playgroud)
和setting.py文件是:
from mongoengine import connect
connect("authentication_demo")
DEBUG = …Run Code Online (Sandbox Code Playgroud) 如何将 .bmp 图像转换为 .png
\n\n这是我代码的一部分,但它不会\xe2\x80\x99t 将图像转换为 png
\n\nget_cropped_image(impath).save(outpath,'png')\nRun Code Online (Sandbox Code Playgroud)\n\n代码正在运行,但图像不会改变\xe2\x80\x99。
\n请帮助我,我陷入了一些看起来很简单的事情。我只想从另一个列表的元素创建列表。我可以这样做,但无法找出更快的方法,因为我的列表有大约 500 个元素,我不想写 500 次列表名称。例子 :
testing = [ 'john', 'mark', 'joseph', 'cody', 'bill' , 'dick']
new= [testing [0], testing[3], testing[4]]
Run Code Online (Sandbox Code Playgroud)
给了我我想要的,但我怎样才能让它更快。我试过
new = [testing ([0], [3], [4])]
Run Code Online (Sandbox Code Playgroud)
并得到 'list' object is not callable
我试图运行下面的代码,当我运行python tfidf.py(Python 2.6.9)时,我SyntaxError: invalid syntax在下面的行中得到错误,指向for语句.我究竟做错了什么?
def produceVector(blob, bloblist):
##### SYNTAXERROR: invalid syntax in the "for" in the line below #####
scores = {word: tfidf(word, blob, bloblist) for word in blob.words}
return scores
def tf(word, blob):
return blob.words.count(word) / len(blob.words)
def n_containing(word, bloblist):
return sum(1 for blob in bloblist if word in blob)
def idf(word, bloblist):
return math.log(len(bloblist) / (1 + n_containing(word, bloblist)))
def tfidf(word, blob, bloblist):
return tf(word, blob) * idf(word, bloblist)
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
some = {}
stat = {'matches_played': 0, 'won': 0, 'draws': 0, 'loss': 0, 'points': 0}
some = {'Arsenal': stat}
some.update({'Chelsea': stat})
some['Arsenal']['won'] += 1
some['Chelsea']['loss'] += 1
print(some)
Run Code Online (Sandbox Code Playgroud)
结果是:
{'Arsenal': {'matches_played': 0, 'won': 1, 'draws': 0, 'loss': 1, 'points': 0},
'Chelsea': {'matches_played': 0, 'won': 1, 'draws': 0, 'loss': 1, 'points': 0}}
Run Code Online (Sandbox Code Playgroud)
但是我需要
{'Arsenal': {'matches_played': 0, 'won': 1, 'draws': 0, 'loss': 0, 'points': 0},
'Chelsea': {'matches_played': 0, 'won': 0, 'draws': 0, 'loss': 1, 'points': 0}}
Run Code Online (Sandbox Code Playgroud)
您能解释一下为什么会发生这种情况吗?
我希望能够检查两个变量是否各自占一定的百分比,例如,如果我有
value1 = 200
value2 = 210
Run Code Online (Sandbox Code Playgroud)
我想检查如果值 2 比值 1 大 10% 以上,则会抛出警告错误,这可以在 python 代码中执行吗?
python ×11
django ×2
list ×2
python-2.7 ×2
for-loop ×1
image ×1
java ×1
jframe ×1
python-2.6 ×1
python-3.x ×1
sequence ×1
string ×1