最近我正在尝试学习一种函数式编程语言,我选择了Haskell.
现在我正在阅读学习一个haskell,这里的描述似乎是Haskell的哲学我不确定我是否完全理解它:你在Haskell中通过声明什么而不是声明你如何得到它来进行计算.
假设我想得到一个列表的总和.
在声明你如何得到它的方式:通过添加所有元素来获得总和,所以代码将是这样的(不是haskell,python):
sum = 0
for i in l:
sum += i
print sum
Run Code Online (Sandbox Code Playgroud)
在什么样的东西是这样:总和是第一要素,其余元素的总和的总和,因此代码将是这样的:
sum' :: (Num a) => [a] -> a
sum' [] = 0
sum' (x:xs) = x + sum' xs
Run Code Online (Sandbox Code Playgroud)
但我不确定我是否得到它.有人可以帮忙吗?谢谢.
我ro.kernel.qemu=0用yaffey 替换了一个修改后的build.prop,它包含在system.img中,但它没有用.当模拟器重新启动时,ro.kernel.qemu=1仍然存在于输出中adb shell getprop.
编辑:
我也尝试过:
ro.kernel.qemu=0在ramdisk.img中添加default.propsetprop ro.kernel.qemu 0在ramdisk.img中添加init.goldfish.rc但所有这些都没有用.当我用修改后的ramdisk.img启动模拟器时,ro.kernel.qemu输出中仍然是1 adb shell getprop.
我现在正在尝试重建内核以将其设置为0,但我没有找到ro.kernel.qemu内核源代码中设置的位置.
感谢任何建议.
我编写了一个从页面获取数据的脚本,但有时页面需要时间来加载,因此当它将html拉入汤对象时,它会拉动任何内容,因为页面仍然需要完成.
我编写了以下代码来等待页面完成.
def scrape_page(url):
browser.get(url)
try:
WebDriverWait(browser, 10).until(EC.presence_of_element_located(browser.find_element_by_id ("selection-box")))
#Extract Source Code
html = browser.page_source;
soup = BeautifulSoup(html)
Run Code Online (Sandbox Code Playgroud)
有用
但是当我调用该函数时,我收到以下错误;
TypeError: find_element() argument after * must be a sequence, not WebElement
Run Code Online (Sandbox Code Playgroud) 我正在尝试将主机绑定到我的python程序中的指定ips。只需使其在python程序中起作用即可,因此我将不修改该/etc/hosts文件。
我试图在该create_connection函数中添加一些代码以socket.py进行主机IP转换,如下所示:
host, port = address # the original code in socket.py
# My change here:
if host == "www.google.com":
host = target_ip
for res in getaddrinfo(host, port, 0, SOCK_STREAM): # the original code in socket.py
Run Code Online (Sandbox Code Playgroud)
我发现它工作正常。
现在,我希望host-ip转换仅在此python程序中有效。
所以我的问题是:使用时,如何使我的python程序导入此socket.py而不是内置的import socket?
为了清楚起见,这是一个示例。假设“ test”是我的工作目录:
test
|--- main.py
|--- socket.py
Run Code Online (Sandbox Code Playgroud)
在这种情况下:
我怎样才能使main.py使用test / socket.py import socket?
如何在使用其他模块时使用test / socket.py import socket?
我认为更改模块查找路径顺序可能会有所帮助。但是我发现,即使当前path('')已经位于sys.path并且import socket仍然会导入内置的scoket模块。
我很好奇其他人对这个问题的看法......
在过去的几天里,我一直在来回使用QuerySet.update()与对战ModelInstance.save().显然,如果有很多字段被更改,我会使用save(),但是为了更新几个字段,我认为最好使用它QuerySet.update().使用的好处QuerySet.update()是,您可以update()在同一对象的不同字段上同时运行多个线程,并且您不会遇到种族问题.默认save()方法保存所有字段,因此save()从两个线程并行将是有问题的.
那么问题是如果你有重载的自定义save()方法.我能想到的最好的方法是将自定义save()方法中的任何内容抽象为单独的更新程序方法,这些方法实际上用于QuerySet.update()在模型中设置几个字段.有人用过这种模式吗?
令人恼火的是,在Django Admin中,即使在您只编辑一个字段的更改列表模式下进行编辑,整个模型也会被保存.这基本上意味着如果有人在他/她的浏览器上打开了更改列表,而在系统中某个其他地方更新了某个字段,则当该用户从更改列表中保存更改时,该更新的值将被丢弃.有这个问题的解决方案吗?
思考?
谢谢.
我希望识别 html 文件中请求外部资源的 url。
我目前使用和标签scr中的属性,以及标签中的属性(用于识别css)。imgscripthreflink
我是否应该检查其他标签来识别其他资源?
作为参考,我的 Python 代码目前是:
html = read_in_file(file)
soup = BeautifulSoup(html)
image_scr = [x['src'] for x in soup.findAll('img')]
css_link = [x['href'] for x in soup.findAll('link')]
scipt_src = [] ## Often times script doesn't have attributes 'src' hence need for try/except
for x in soup.findAll('script'):
try:
scipt_src.append(x['src'])
except KeyError:
pass
Run Code Online (Sandbox Code Playgroud) 我有一个python程序,它从文件中读取行并将它们放入dict中,简单来说,它看起来像:
data = {'file_name':''}
with open('file_name') as in_fd:
for line in in_fd:
data['file_name'] += line
Run Code Online (Sandbox Code Playgroud)
我发现它需要几个小时才能完成.
然后,我对程序做了一些改动:
data = {'file_name':[]}
with open('file_name') as in_fd:
for line in in_fd:
data['file_name'].append(line)
data['file_name'] = ''.join(data['file_name'])
Run Code Online (Sandbox Code Playgroud)
它在几秒钟内完成.
我认为这+=会使程序变慢,但似乎没有.请查看以下测试的结果.
我知道我们可以使用list append和join来提高concat字符串的性能.但我从未想过追加和加入以及添加和分配之间存在这样的性能差距.
所以我决定做更多的测试,最后发现它是dict更新操作使程序疯狂地慢.这是一个脚本:
import time
LOOPS = 10000
WORD = 'ABC'*100
s1=time.time()
buf1 = []
for i in xrange(LOOPS):
buf1.append(WORD)
ss = ''.join(buf1)
s2=time.time()
buf2 = ''
for i in xrange(LOOPS):
buf2 += WORD
s3=time.time()
buf3 = {'1':''} …Run Code Online (Sandbox Code Playgroud) python ×4
haskell ×2
android ×1
cpython ×1
dictionary ×1
django ×1
html ×1
performance ×1
selenium ×1
sockets ×1