我想在"User-agent"使用Python请求请求网页时发送一个值.我不确定是否可以将其作为标题的一部分发送,如下面的代码所示:
debug = {'verbose': sys.stderr}
user_agent = {'User-agent': 'Mozilla/5.0'}
response = requests.get(url, headers = user_agent, config=debug)
Run Code Online (Sandbox Code Playgroud)
调试信息未显示请求期间发送的标头.
在标题中发送此信息是否可以接受?如果没有,我该如何发送?
我在REPL,我创建了一个java数组:
=> (def arr (double-array [1 2 3]))
Run Code Online (Sandbox Code Playgroud)
当然,如果我想看看我arr,我得到:
=> arr
#<double[] [D@2ce628d8>
Run Code Online (Sandbox Code Playgroud)
有什么我可以做的,会使像java原语的数组打印像clojure的persistentVector?
=> arr
[1.0 2.0 3.0]
Run Code Online (Sandbox Code Playgroud)
我知道我可以将我的数组包装在某种漂亮的打印功能中(这是我目前所做的),但这种情况很痛苦,例如,矢量是地图的一部分:
=> my-map
{"1" #<double[] [D@47254e47>, "2" #<double[] [D@11d2625d>}
Run Code Online (Sandbox Code Playgroud) 在Leiningen版本1.xx中,我能够lein foo通过在该项目中添加以下内容来定义仅在单个项目中有效的任务project.clj:
(defproject tester "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.4.0"]])
;; Create a task, "foo"
(ns leiningen.foo
(:require (leiningen [uberjar :as uberjar])))
(defn foo [project & args]
(println "Do something here first, then make the uberjar.")
(uberjar/uberjar project))
Run Code Online (Sandbox Code Playgroud)
您可以在此处获取有关此内容的更多信息:
http://nakkaya.com/2010/02/25/writing-leiningen-plugins-101/
在2.xx中,我不能再这样做了(也就是说,我觉得'foo' is not a task. 这似乎是一种方式,因为我必须为这个任务启动一个单独的项目. 是否仍然可以在project.clj中定义一个任务为leiningen 2.xx?
我正在玩D3以制作复合动画.我有以下最终状态:

基本上我想要动画连接点 - 添加第一个圆圈.然后将线条绘制到第二个圆圈.绘制线后,添加第二个圆.
为了增加一些视觉吸引力,我执行其他过渡,例如在绘制线条时更改第一个和第二个圆圈的圆半径.
我可以添加圆圈并单独绘制线条,包括动画.但是,我不确定如何继续将转换链接在一起以形成复合动画.
我已经阅读了有关过渡/动画的内容,建议使用each("end").虽然这可以用于绘制初始对象,但是在其他过渡之后才结束.
each("end", ...)正确的方法链接转换?我有一个Android ListView,它有小的(比如1-5帧)口吃,因为它滚动,大约每一秒左右.我意识到许多Android手机在动画平滑性方面存在这些问题,但是,在我的手机上(运行Android 2.2的摩托罗拉A855),原生联系人列表滚动得相当顺利.联系人列表中的项目视图比列表中的项目视图更复杂,即:
<RelativeLayout>
<TextView />
<TextView />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
我只希望实现与原生联系人列表一样好的平滑性.看来这应该可以在没有优化本机代码的情况下实现,但也许我错了.
我尝试了一些事情:我进一步简化了项目视图,并尝试以编程方式而不是XML格式化它.我也尝试改变我对项目点击事件的反应方式,根据以下链接:
http://groups.google.com/group/android-developers/browse_thread/thread/7dc261a6b382ea74?pli=1
这些事情似乎都没有对性能产生任何影响.
我可以在我的应用程序中做些什么来提高性能?我希望将此应用程序部署到多个手机上,因此在我的情况下,更改手机设置或生根设备不是一个选项.这是我的适配器类的getView方法:
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater flater = (LayoutInflater)context.getSystemService(ListActivity.LAYOUT_INFLATER_SERVICE);
layout = flater.inflate(R.layout.song_view, parent, false);
TextView first = (TextView)layout.findViewById(R.id.firstLine);
TextView second = (TextView)layout.findViewById(R.id.secondLine);
Thing t = array.get(position);
first.setText(t.title);
second.setText(t.name);
return layout;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我有一个clojure功能:
(defn f [arg1 arg2]
...)
Run Code Online (Sandbox Code Playgroud)
我想测试,如果arg1和arg2是数字(仅适用于数字类型应该传递-不是数字格式的字符串).当然,有很多方法可以做到这一点,但我想尽可能地做到这一点.建议?
编辑:我知道:pre.任何关于这是否是处理这一问题的适当/必要方式的评论将不胜感激.
我有以下用于 CGI 处理 HTTP 服务器的最小代码,这些代码源自内管上的几个示例:
#!/usr/bin/env python
import BaseHTTPServer
import CGIHTTPServer
import cgitb;
cgitb.enable() # Error reporting
server = BaseHTTPServer.HTTPServer
handler = CGIHTTPServer.CGIHTTPRequestHandler
server_address = ("", 8000)
handler.cgi_directories = [""]
httpd = server(server_address, handler)
httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)
然而,当我执行脚本并尝试使用 CGI 在同一目录中运行测试脚本时http://localhost:8000/test.py,我看到的是脚本的文本,而不是执行的结果。
权限都设置正确,测试脚本本身不是问题(因为python -m CGIHTTPServer当脚本驻留在 cgi-bin 中时,我可以使用 运行它)。我怀疑这个问题与默认的 CGI 目录有关。
我怎样才能让脚本执行?
关于 idomatic Python 的问题。假设我有一个函数:
def a_function(list_of_things):
for item in list_of_things:
process_item(item)
Run Code Online (Sandbox Code Playgroud)
现在假设我很难确定输入参数是一个列表。即使是现在,我仍然可以听到甜美的 Pythonista 合唱团恳求我:“使用鸭子类型和例外!”
def a_function(list_of_things):
try:
for item in list_of_things:
process_item(item)
except:
pass # . . . or something
Run Code Online (Sandbox Code Playgroud)
这很棒,除非我传入一个映射、一个字符串或任何其他可迭代的东西,而我发现对于这个特定的应用程序来说这是“错误的”。
我并没有编写大量的Python,但我经常遇到这种情况和相关的情况,这足以让我经常烦恼。更一般地说,我想使用鸭子类型和异常,这似乎是 Python 中的约定,但在很多情况下可能会得到传递异常的错误输入类型;如此多的例外情况似乎常常是错误的答案(或者至少经常如此)。
即使异常看起来确实是正确的答案,当我使用它们时我仍然感到害怕,因为如果我只是没有想到坏类型会通过的极端情况,留下我的代码,因为缺乏更好的术语怎么办,“躲开”。
所以我最终求助于诸如type和 之类的东西isinstance。根据我的阅读,显式类型检查在 Python 中似乎被认为是邪恶的,但是还能做什么呢?请注意,我几乎从未在 Python 中编写类层次结构,因此我在子类和类型检查方面没有问题,但其他人可能会。
我想到了四种可能的答案,所有这些对我来说似乎都同样可能:
<python thing for this situation>?做一些研究!是其中之一,还是其他?
注意-我在SO上发现了很多关于这个问题的回避问题,但我正在寻找人们来谈论这个特定的“类型”的问题,如果他们可以的话。
如果您正在运行的代码调用Java中的本机库,那么当内存分配应在对象的生命周期内持续时,释放这些库分配的内存的常用方法是什么?在C ++中,我将使用析构函数,但是Java从来没有真正使用过析构函数,现在更少了。
我最感兴趣的特定情况是JOCL,其中有一个对象,该对象包装已编译的OpenCL内核以及所有始终相同的参数。表示已编译内核和参数的结构都在库侧分配,JOCL提供了一种方法clReleaseMemObject,您可以调用该方法来递减指示何时应删除对象的引用计数器(请注意,这与直接释放内存有些不同,但在这种情况下,我基本上不这么认为。
我假设如果程序终止时该对象仍然存在,则操作系统将清除所有内容,但是我不确定线程中创建的对象。所以:
如果要在垃圾回收对象时释放本机内存,是否有合适的位置调用释放该内存的方法?
如果对象是将在线程持续时间内持续的对象,那么是否存在进行此调用的适当位置,或者甚至有必要这样做吗?
multiprocessing我们可以使用已创建的上下文使用Python 3 创建非分叉进程:
ctx = multiprocessing.get_context('spawn')
p = ctx.Process(target=foo, args=(42,))
p.start()
Run Code Online (Sandbox Code Playgroud)
但假设我正在使用Process. 有没有办法Process使用除 之外的方法创建子类实例fork?
python ×4
clojure ×3
java ×2
android ×1
animation ×1
arguments ×1
cgi ×1
chained ×1
d3.js ×1
duck-typing ×1
exception ×1
httpserver ×1
javascript ×1
jocl ×1
leiningen ×1
native-code ×1
pretty-print ×1
python-3.x ×1
transitions ×1
types ×1
validation ×1
web-crawler ×1