显然我不能用Python(2.7)做到这一点:
x = (1, 2,)
(a, b, c) = (*x, 3)
Run Code Online (Sandbox Code Playgroud)
它在我的头脑中是有道理的,但是......我可以创建一个函数:
make_tuple = lambda *elements: tuple(elements)
Run Code Online (Sandbox Code Playgroud)
那我就能做到
(c, a, b) = make_tuple(3, *x)
Run Code Online (Sandbox Code Playgroud)
但不是,例如
(a, b, c) = make_tuple(*x, 3)
(a, b, c, d) = make_tuple(*x, *x)
y = [3, 4]
(a, b, c, d) = (*x, *y,)
Run Code Online (Sandbox Code Playgroud)
所以我要问的是
我目前对#2的猜测:
(a, b, c) = x + (3,)
(a, b, c, d) = x + x
(a, b, c, d) = x + tuple(y)
Run Code Online (Sandbox Code Playgroud) 给定 chart.js 中的折线图,其中填充了曲线下方的区域。当用户悬停或点击填充区域时,有没有办法获得有用的事件?
var chart_canvas = document.getElementById("myChart");
var stackedLine = new Chart(chart_canvas, {
type: 'line',
data: {
labels: ["0.0", "0.2", "0.4", "0.6", "0.8", "1.0"],
fill: true,
datasets: [{
label: 'Usage',
data: data[0],
},
{
label: 'Popularity',
data: data[1],
}]
},
options: {
onHover: function (elements) {
console.log(elements);
}
// more stuff
}
});
Run Code Online (Sandbox Code Playgroud)
我试过了,onHover但是在填充区域时,唯一的参数是一个空数组。
我有一个堆积的、填充的图表,如图像中的曲线。当鼠标位于浅灰色区域的任何位置时,我想要一个事件。
编辑这是一个小提琴:https : //jsfiddle.net/markv/rvqjkrp9/1/
我使用科特林多平台(JVM和JS),这在IDEA创建三个项目:demo,demo-js和demo-jvm.
我想将公共代码拆分为更多子项目/子模块.让我们说我补充commonmod; 我如何编译?
现在的错误gradle run -p demo-jvm是:
demo/demo-js/src/main/kotlin/demo/commonmod/example.kt: (3, 12): Actual function 'getPlatform' has no corresponding expected declaration
Run Code Online (Sandbox Code Playgroud)
但我认为我这样做根本就是错误的,因为我不知道应该依赖什么(虽然我尝试过一些迭代).如果我解决了这个错误,我会得到其他的,然后是其他的,直到我回到这个.
作为一个最小但仍然很大的例子,我有:
demo/settings.gradle:
rootProject.name = 'demo'
include 'demo-jvm', 'demo-js', 'commonmod'
Run Code Online (Sandbox Code Playgroud)
demo/build.gradle:
buildscript { ... }
apply plugin: 'kotlin-platform-common'
repositories {
mavenCentral()
}
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib-common:$kotlin_version"
testCompile "org.jetbrains.kotlin:kotlin-test-annotations-common:$kotlin_version"
testCompile "org.jetbrains.kotlin:kotlin-test-common:$kotlin_version"
compile project(':commonmod')
}
Run Code Online (Sandbox Code Playgroud)
demo/demo-jvm/settings.gradle:
rootProject.name = 'demo'
Run Code Online (Sandbox Code Playgroud)
demo/demo-jvm/build.gradle:
buildscript { ... }
apply plugin: 'kotlin-platform-jvm'
apply …Run Code Online (Sandbox Code Playgroud) 我想将一个参数传递给一个名为using的函数setTimeout.我找到了这三个选项:
A = 1;
// Method 1: closure things
setTimeout(function() { whatsA(A); }, 100);
// Method 2: third argument (same result with [A])
setTimeout(whatsA, 100, A);
// Method 3: eval
setTimeout('whatsA(' + A + ')', 100);
A = 2;
function whatsA(X) { console.log(X); }
Run Code Online (Sandbox Code Playgroud)
这在Internet Explorer 9中显示2,undefined和1.
方法1:显然,我不希望在传递之后更改参数(当然在简单整数的情况下).
方法2:如果只有Internet Explorer支持它,这将是完美的.
方法3:这似乎是唯一的选择.但它看起来并不像其他人那么漂亮,传递的东西要被评估而不是功能.
有没有更好的办法?
当我向Django提交一个多文件上传表单时
<input type="file" name="files" multiple />
Run Code Online (Sandbox Code Playgroud)
我得到了一个明智的结果request.FILES:
(MultiValueDict: {u'files': [(InMemoryUploadedFile: 0202.jpg (image/jpeg)), (InMemoryUploadedFile: 0203.jpg (image/jpeg))]})
Run Code Online (Sandbox Code Playgroud)
但后来我的困惑开始了.我以为request.FILES['files']会包含几个文件(似乎是一个列表),但它只显示
0203.jpg
Run Code Online (Sandbox Code Playgroud)
没有任何InMemoryUploadedFile部分,更重要的是:只有最后一个文件!
只通过那个文件循环request.FILES,.iteritems()显然request.FILES['files']是难以理解的; 以下代码实际上冻结了控制台并使其无休止地发出哔哔声:
for v in request.FILES['files']:
print v
print type(v)
Run Code Online (Sandbox Code Playgroud)
那么......这是否正常?我究竟做错了什么?
因为我开始认为这可能是一个错误:我在Windows 7上使用Django 1.4.2和Python 2.7.
总结:Django会话中是否存在竞争条件,如何防止它?
我对Django会话有一个有趣的问题,我认为由于同一用户的同时请求而涉及竞争条件.
它出现在一个脚本中,用于同时上传多个文件,在localhost上进行测试.我认为这很可能同时发生来自同一用户的请求(由于本地主机的响应时间很短,因文件上传而导致请求时间过长).尽管如此,在localhost之外的正常请求仍然可能,但不太可能.
我发送了几个(文件发布)请求,我认为这样做:
request.session['files'](字典)request.session['files']再次存储字典这里的检查将指示信息确实已存储在会话中.但是,未来的请求表明有时它有,有时它没有.
我认为正在发生的是这些请求中的两个(A和B)同时发生.请求A request.session['files']首先检索,然后B执行相同的操作,更改并存储它.当A终于完成时,它会用B覆盖会话更改.
两个问题:
在更改之前检索会话数据并立即保存它应该会减少我认为的机会.但是我还没有找到办法做到这一点request.session,只能使用它来解决它django.contrib.sessions.backends.db.SessionStore.但是我认为如果我改变它,那么Django将request.session在请求结束时覆盖它.
所以我需要一个request.session.reload()和request.session.commit(),基本上是这样.
我error in sys.exitfunc在使用matplotlib时一直在努力.例如,以下代码将它抛给matplotlib 1.3.0/Python 2.7.3/Ubuntu 12.04.3 LTS
from matplotlib.pyplot import figure, show
from numpy.random import random
fh = figure(figsize = (15, 10, ))
ax = fh.add_axes((.1, .1, .8, .8, ))
ax.scatter(random((100, )), random((100, )))
fh.show()
Run Code Online (Sandbox Code Playgroud)
这产生了
Error in atexit._run_exitfuncs:
Traceback (most recent call last):
File "/usr/lib/python2.7/atexit.py", line 24, in _run_exitfuncs
func(*targs, **kargs)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/_pylab_helpers.py", line 86, in destroy_all
manager.destroy()
File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_gtk3.py", line 427, in destroy
self.canvas.destroy()
AttributeError: FigureManagerGTK3Agg instance has no attribute 'canvas'
Error in sys.exitfunc:
Traceback (most …Run Code Online (Sandbox Code Playgroud) 我希望使用openmp来加速我通过f2py运行的Fortran代码.但是,在成功编译之后,我无法在Python中导入模块.
对于像这样的Fortran95模块:
module test
implicit none
contains
subroutine readygo()
real(kind = 8), dimension(10000) :: q
!$OMP WORKSHARE
q = 7
!$OMP END WORKSHARE
end subroutine
end module
Run Code Online (Sandbox Code Playgroud)
使用以下命令编译和导入:
f2py -m SOmod --fcompiler=gnu95 --f90flags='-march=native -O3 -fopenmp' -c SOtest.f95
python2 -c "import SOmod"
Run Code Online (Sandbox Code Playgroud)
我收到一个错误.错误是导入 - 编译直接使用f2py或gfortran工作正常(仅获得有关'使用已弃用的NumPy API'的警告).
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: ./SOmod.so: undefined symbol: GOMP_barrier
Run Code Online (Sandbox Code Playgroud)
我为不同的OMP指令得到了不同的GOMP_*错误.没有指令(但使用-openmp标志)它可以工作.
任何帮助将不胜感激.
有没有一种简单的方法可以从Python中的ical文件中获取一天的事件?
对于非经常性的,有一天的事件,我使用了类似的东西
from icalendar import Calendar
for event in Calendar.from_ical(ical).walk('vevent'):
if edate > ref_ref_day_start and event.get('dtstart').dt < ref_day_end:
# code here
Run Code Online (Sandbox Code Playgroud)
但重复发生的事件只发生walk一次.
我可以看到如何在没有结束的情况下重复事件的无限事件迭代可能是一个问题.但仍然必须有一个比自己计算重复更简单的方法,对吗?
(我找不到太多的文档.我阅读了与重复发生的事件相关的icalendar测试,但它似乎没有做这样的事情).
这似乎是之前有人问过的问题,但我找不到重复的东西,所以......
我希望图像的最小尺寸在保持纵横比的同时最大缩放 200。所以:
显然,如果它可以用 css 来完成,那么它比 javascript 更受欢迎。
python ×5
javascript ×3
django ×2
aspect-ratio ×1
chart.js ×1
charts ×1
closures ×1
css ×1
datetime ×1
dom-events ×1
f2py ×1
file-upload ×1
fortran ×1
gradle ×1
icalendar ×1
kotlin ×1
matplotlib ×1
mouseover ×1
numpy ×1
openmp ×1
rfc5545 ×1
scope ×1
session ×1
settimeout ×1