“帶參數(shù)的裝飾器”,這樣的描述并不準(zhǔn)確,@desc(arg) 更好的理解是函數(shù) desc 被調(diào)用,該函數(shù)返回一個(gè)裝飾器。況且你已經(jīng)知道處理方法了,只是想要知道為什么。這點(diǎn)上是一點(diǎn)就通的。
先理解一個(gè),函數(shù)允許重新賦值的
def f():
pass
f = 1
print(f) # 1
然后你對(duì)裝飾器的理解也已經(jīng)很充分了:
@log(i, j, k)
def f():
# 等價(jià)于
tmp = log(i,j,k)
@tmp
def f():
這里的原因在于,你把 log 重新賦值了,它變成了一個(gè)裝飾器,而不是一個(gè)返回裝飾器的函數(shù)。嗯,原因就是這么簡(jiǎn)單。
let allSpan = document.querySelectorAll('#yourdiv span')
let spanArr = [];
Array.prototype.forEach.call(allSpan, (v) => {
if(v.className != "") spanArr.push(v);
})
就是一個(gè)字符串前綴(如果a非null取a,為null就取空字符串)+加上一個(gè)計(jì)數(shù)器
首先,print("After local assignment:", spam) 每次都是先尋找當(dāng)前作用域的 spam,也就是:
def scope_test():
...
spam = "test spam" # 給這個(gè) spam 取個(gè)代號(hào):spam_4
...
print("After local assignment:", spam) # 始終打印上面這個(gè) spam_4 的值
print("After nonlocal assignment:", spam) # 始終打印上面這個(gè) spam_4 的值
print("After global assignment:", spam) # 始終打印上面這個(gè) spam_4 的值
回答第一個(gè)問(wèn)題:do_local() 內(nèi)部的 spam 作用域僅僅為這個(gè) do_local()內(nèi)部,因此沒(méi)有給 spam_4 賦值,所以打印 test_spam。
回答第二個(gè)問(wèn)題:
在執(zhí)行do_nonlocal()里面,spam_4 已經(jīng)賦值為 nonlocal spam。
而 do_global()里面的賦值沒(méi)有改變 spam_4 的值,因此還是打印 nonlocal spam。
不是很清楚你的情況,能否說(shuō)一下你期望在什么操作下看到什么結(jié)果嗎?還有你確定你知道session是干什么用的了嗎?一般django中是不用你手動(dòng)修改session表的。如果你的兩次請(qǐng)求的cookie中的sessionID一樣,那是不應(yīng)該會(huì)新建兩個(gè)session的。
你試試用systemctl這個(gè)命令,這個(gè)問(wèn)題可以去deepin bbs論壇提問(wèn)的。
類似于,
systemctl disable mysqld.service
或者是mysql.service
關(guān)于systemctl和chkconfig的用法區(qū)別,可以參照下網(wǎng)上的文章
http://blog.csdn.net/kenhins/...
用XPATH定位 來(lái)獲取動(dòng)態(tài)序列號(hào)
如何
html = etree.HTML(content)
lt = html.xpath('//input[@name="lt"]')[0].attrib.get("value")
execution = html.xpath('//input[@name="execution"]')[0].attrib.get("value")
_eventId = html.xpath('//input[@name="_eventId"]')[0].attrib.get("value")
調(diào)試的時(shí)候加個(gè)no-cache,上線再去了?正常來(lái)講資源不應(yīng)該是有版本號(hào)或者h(yuǎn)ash的嗎。
不過(guò)你ctrl+f5應(yīng)該也能直接強(qiáng)制重新請(qǐng)求呀。
重新創(chuàng)建虛擬環(huán)境,在虛擬環(huán)境內(nèi)使用python -m pip install gunicorn重新安裝 gunicorn
py不熟,給思路吧。
SVG和Canvas的區(qū)別,我覺(jué)得前者更偏重于聲明式(或者可以說(shuō)類似于HTML標(biāo)簽),而后者則更多的是命令式的(對(duì)應(yīng)Javascript語(yǔ)言)。這就導(dǎo)致了它們?cè)趹?yīng)用上,SVG使用固定/已有圖像、以及相對(duì)“固化”的動(dòng)畫(huà)效果時(shí),會(huì)更有優(yōu)勢(shì)一些;而Canvas則足夠動(dòng)態(tài),適用于一些需要復(fù)雜邏輯控制(舉個(gè)例子,比如繪制根據(jù)聲波變化的連續(xù)的正弦曲線)或者在2D/3D或者需要復(fù)雜圖形學(xué)參與的場(chǎng)合。至于矢量還是位圖,由于它們都具有操作位圖的能力,所以其實(shí)都無(wú)所謂。
題目中這個(gè)我覺(jué)得還是SVG更適合,前邊說(shuō)了SVG和HTML相對(duì)的會(huì)比較親和,所以如果不是特別大的文件,去掉頂部的XML和Doctype聲明之后,是可以直接嵌入到HTML之中的,比如我之前寫(xiě)過(guò)的一個(gè)H5里,有幾張小圖都是單獨(dú)出現(xiàn)的,我為了避免逐個(gè)去定位,就把它們直接寫(xiě)到了一個(gè)SVG容器里:
<svg id="awardOuter" version="1.1" baseProfile="full" width="540" height="541" xmlns="http://www.w3.org/2000/svg">
<defs>
<g id="first" width="150" height="175">
<image xlink:href="xxx.png" x="0" y="35" width="150" height="75"></image>
<text font-size="20" fill="white" x="75" y="130" text-anchor="middle">第一</text>
</g>
<g id="second" width="150" height="175" transform="rotate(120 75 87)">
<image xlink:href="yyy.png" x="0" y="35" width="150" height="75"></image>
<text font-size="20" fill="white" x="75" y="130" text-anchor="middle">第二</text>
</g>
<g id="third" width="150" height="175" transform="rotate(240 75 87)">
<image xlink:href="zzz.png" x="0" y="35" width="150" height="75"></image>
<text font-size="20" fill="white" x="75" y="130" text-anchor="middle">第三</text>
</g>
</defs>
<image xlink:href="img/temp.png" x="0" y="0" width="540" height="541"></image>
<use xlink:href="#first" x="195" y="20"></use>
<use xlink:href="#second" x="334" y="264"></use>
<use xlink:href="#third" x="50" y="264"></use>
</svg>
這段我是直接寫(xiě)到HTML里的,可以看到SVG主標(biāo)簽上其實(shí)就只有SVG命名空間(xmlns="http://www.w3.org/2000/svg")、版本信息(版本號(hào)version="1.1"和相應(yīng)的語(yǔ)言集baseProfile="full"),然后再加個(gè)寬高就可以了(當(dāng)然如果有復(fù)雜縮放可以加上SVG視口屬性),定位直接用CSS定位就行。矢量的話也是一樣的思路,看你已經(jīng)寫(xiě)了Demo,可以套進(jìn)去試試。
你的代碼問(wèn)題太多了:
a.sort 是函數(shù) sort 對(duì)象, 由於你沒(méi)有調(diào)用所以也不會(huì)排序, 應(yīng)當(dāng)改為 a.sort() 或 a = sorted(a), 不過(guò)在不影響原始資料的前提下, 我們通常選擇後者的作法mid 的更新應(yīng)該在 while 內(nèi), 否則不管 low 或是 high 怎麼變動(dòng), 你都是在測(cè)試一樣的資料low < high 這個(gè)條件應(yīng)當(dāng)改為 low <= high 否則有一些 corner case 會(huì)有問(wèn)題t > a[mid] 的時(shí)候, low 應(yīng)該更新為 mid + 1 而非 high + 1
t == a[mid] 也就是找到目標(biāo)的時(shí)候, 也應(yīng)該返回該目標(biāo)的索引值而非打印結(jié)果而已-1 或是 None, 但我更傾向自定義一個(gè)錯(cuò)誤並引發(fā)之綜上所述加上其他一些小優(yōu)化包含變量名稱等, 我有一個(gè)修正後的版本給你參考:
class NotFoundError(Exception):
"""Can not found target number within the given numbers"""
def binary(target, numbers):
numbers = sorted(numbers)
low, high = 0, len(numbers) - 1
while low <= high:
mid = (low + high) // 2
print(low, high, mid)
if target < numbers[mid]:
high = mid - 1
elif target == numbers[mid]:
return mid
else:
low = mid + 1
raise NotFoundError
target = int(input("請(qǐng)輸入一個(gè)數(shù)"))
numbers = list(range(1, 21))
try:
idx = binary(target, numbers)
print('target {} is in numbers with index {}'.format(target, idx))
except NotFoundError as err:
# error handling
我回答過(guò)的問(wèn)題: Python-QA
http://blog.sina.com.cn/s/blo...
看看這個(gè)
print s.split('=')[-1]試試from .models import Product
ps:在sf提問(wèn)最好貼代碼吧
補(bǔ)充:從圖片中的traceback可以看出from models import Product 這一行中的models 并不是app 中的models ,所以這里要指明用哪個(gè)models
答案中的.models 表明我需要的在當(dāng)前目錄下models
用 pillow 模塊把各式圖片轉(zhuǎn)換成像素集,然后轉(zhuǎn)成 numpy 數(shù)組,最后保存到文件。
請(qǐng)參考下面的代碼
# -*- coding: utf-8 -*-
from PIL import Image
import numpy as np
def images_to_array(image_files, array_file):
""" 將多個(gè)圖像文件保存成 numpy 數(shù)組,并存儲(chǔ)到 .npy 文件。
"""
data = []
for filename in image_files:
data.append(np.array(Image.open(filename)))
np.save(array_file, data)
def load_images(array_file):
""" 從 .npy 文件讀取所有圖像數(shù)組。
"""
return np.load(array_file)
images_to_array(['1.png', '2.png'], '1.npy')
load_images('1.npy')
參考資料
你說(shuō)的是錨點(diǎn),參考:
https://www.cnblogs.com/heiniuhaha/archive/2011/11/23/2260201.html換了個(gè)瀏覽器,從Firefox換成了Chrome,第一個(gè)問(wèn)題解決了。
查找網(wǎng)頁(yè)元素的同時(shí)點(diǎn)擊,第二個(gè)問(wèn)題也解決了。
value|my_tag:'atr'
前面的value需要正常
首先你user_add1 = UserAddress.objects.filter(id=int(add_id))得到的是一個(gè)“array-like”的東西,就當(dāng)它是一個(gè)數(shù)組好了,你序列化之后當(dāng)然也是一個(gè)數(shù)組咯。
字面上來(lái)講,id是唯一的,因此你不應(yīng)該filter,而應(yīng)該get:user_add1 = UserAddress.objects.get(id=int(add_id)),這樣得到的就是一個(gè)UserAddress對(duì)象而不是一個(gè)數(shù)組了。這是第二個(gè)問(wèn)題。
最后一個(gè)問(wèn)題,前端獲得的是序列化之后的東西,說(shuō)白了就是字符串,你需要調(diào)用JSON.parse把這些字符串轉(zhuǎn)為JSON對(duì)象。更多詳情自行搜索JSON.parse。
然后如果你一定要用filter,去掉中括號(hào)的方法也很簡(jiǎn)單:
使用json.dumps代替serializers.serialize:
首先你要實(shí)現(xiàn)toJSON方法,比如:
class UserAddress(model):
...
def toJSON(self):
return {
'model': 'Shopping.useraddress',
'pk': self.pk,
'fields': {
'user': 3,
'district': self.user.district,
'address': self.user.district,
'signer_name': self.user.signer_name,
'signer_mobile': self.user.signer_mobile,
'default_add': self.user.default_add,
'add_time': time.mktime(self.user.add_time.timetuple)
}
}
然后
import json
...
user_add1 = UserAddress.objects.get(id=int(add_id))
json_data = json.dumps(user_add1.toJSON())
return HttpResponse(json_data, content_type="application/json; charset=utf-8")
或
user_add1 = UserAddress.objects.get(id=int(add_id))
json_data = json.dumps(user_add1)
return JsonResponse(user_add1.toJSON(), safe=False)
首先html中的id必須是唯一的,不然怎么叫id?你有三個(gè)id為modify的a標(biāo)簽……然后你的a標(biāo)簽的onclick調(diào)用的是modify(),而你底下給的是like()……就當(dāng)這兩個(gè)函數(shù)是一個(gè)函數(shù)好了,你like()里document.getElementById的參數(shù)怎么又變成delete了哈哈哈
所以你只要把id改成唯一的就行,然后通過(guò)onclick調(diào)用modify()或者說(shuō)like()時(shí),這樣會(huì)有個(gè)新的問(wèn)題:onclick調(diào)用的函數(shù)怎么知道你click了哪個(gè)元素?解決方法自行搜索“onclick 傳參”。
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。