import inspect
class IntTuple(tuple):
def __new__(cls, iterable):
g = (x for x in iterable if isinstance(x,int) and x > 0)
return super(IntTuple, cls).__new__(cls, g)
def __init__(self, iterable):
print(inspect.getargspec(super(IntTuple, self).__init__)) # 打印父類的__init__
# ArgSpec(args=['self'], varargs='args', keywords='kwargs', defaults=None)
print(iterable)
t = IntTuple([1,-1,'abc',6,['x','y'],3])
print(inspect.getargspec(t.__init__)) # 打印你自己定義的__init__
# ArgSpec(args=['self', 'iterable'], varargs=None, keywords=None, defaults=None)
你會(huì)發(fā)現(xiàn)tuple父類的__init__根本沒有參數(shù)傳遞,從報(bào)的錯(cuò)誤可以看出,tuple沒有實(shí)現(xiàn)__init__魔術(shù)方法,而是直接繼承的object。從傳遞的參數(shù)也可以看出來,iterable還是那個(gè)沒處理的,而不是從__new__里傳遞過來的g
首先給出我認(rèn)為的正確寫法吧(我copy了Predicat類,然后改名為PredicateExt進(jìn)行重寫)
default PredicateExt<T> negate() {
PredicateExt<T> predicate = this;
PredicateExt<T> otherPredicate = new PredicateExt<T>() {
@Override
public boolean test(T t) {
return !predicate.test(t);
}
};
return otherPredicate;
}
再來看看Java8中Predicate.negate到底表達(dá)的是什么意思
Predicate肯定是一個(gè)類,(t) -> !test(t)這種lamdba語法也只是表示Predicate的一個(gè)對(duì)象而已default方法就是代表了Predicate對(duì)象的某個(gè)實(shí)例方法因此結(jié)合以上兩點(diǎn),可以直接看出Predicate.negate代表Predicate的某個(gè)對(duì)象A執(zhí)行時(shí),根據(jù)A的執(zhí)行結(jié)果再次創(chuàng)建了一個(gè)新Predicate的對(duì)象B
所以,要換種方式來表示Predicate.negate方法,肯定也要體現(xiàn)出A,B兩個(gè)新舊對(duì)象,并且該方法的執(zhí)行結(jié)果是根據(jù)A的執(zhí)行結(jié)果體現(xiàn)出來的
再來說說題主為什么會(huì)死循環(huán),雖然題主已經(jīng)明顯new了一個(gè)Predicate對(duì)象,這里體現(xiàn)了A,B兩個(gè)新舊對(duì)象,但是后面的執(zhí)行結(jié)果并沒有體現(xiàn)出是根據(jù)A的執(zhí)行結(jié)果來產(chǎn)生B的
主要在于里面的在重寫B(tài)的test方法時(shí),是再調(diào)用test方法的,只是前面加了一個(gè)!,所以顯然這里調(diào)用的是B的Predicate的test方法,當(dāng)然就是循環(huán)調(diào)用了,可別指望它能調(diào)用A的Predicate方法,因?yàn)槟阏谥貙戇@個(gè)新Predicate的方法,這里的this指針,肯定是指向B的
鑒于此,既然在B里面重寫方法時(shí)this指針是指向B的,那就在外面顯示的把A的對(duì)象指示出來,然后再B中重寫時(shí),顯示用的A的方法進(jìn)行執(zhí)行,這樣就可以了,所以才有上面的寫法
從運(yùn)行的debug來看,以前的方式和現(xiàn)在重寫的方式,在新的B對(duì)象中,都包含了以前的舊對(duì)象A的,所以是可行的
PHP的核心維護(hù)者花了很多的心血卻提高底層的解釋器效率,為什么Python的維護(hù)者不去呢?
可能是因?yàn)?php 以前太慢了唄。
return過去啊
print這個(gè)看一下吧
樓主搜索下grub
目前有個(gè)比較low的方法,就是在父類里面,界面消失時(shí),做個(gè)隱藏導(dǎo)航欄的處理,體驗(yàn)稍微差點(diǎn)
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
if (self.isFromWeex) {
[self.navigationController setNavigationBarHidden:YES];
}
}
希望有好的建議,繼續(xù)提出,謝謝!
r.encoding = 'gbk'
soup = BeautifulSoup(r.text, 'lxml')event loop了解一下?
看你的邏輯是通的,我也試了代碼可以跑。我猜測(cè)是數(shù)據(jù)庫的問題,你的數(shù)據(jù)庫外鍵關(guān)聯(lián)沒做on_delete=True,可能導(dǎo)致保存一個(gè)模型對(duì)象的時(shí)候,外鍵關(guān)聯(lián)的需要值卻沒有,其它的看不出什么來了,只能幫你到這了。 話說這是公司代碼?還是自己寫了學(xué)習(xí)的。
好像與fastclick有關(guān),刪除該組件后似乎就不會(huì)了
微博pc端很難爬,你得做好心理準(zhǔn)備
用formData.append()將File轉(zhuǎn)換成Blob(File) 類型,然后ajax formData
var filearr = [];
var myfile = document.getElementById('file');
myfile.onchange = function(){
var files = this.files;
for(var i = 0;i<files.length;i++){
filearr.push(files[i]);
}
}
function sub(){
var formData = new FormData();
for(var i =0;i<filearr.length;i++){ //提交時(shí),我們把filearr中的數(shù)據(jù)遍歷一遍
formData.append("upfile[]", filearr[i]); //用append添加到formData中,就得用戶最重要提交的圖片了
};
$.ajax({
url: "1.php",
type: "POST",
data:formData,
cache:false, //不設(shè)置緩存
processData: false, // 不處理數(shù)據(jù)
contentType: false // 不設(shè)置內(nèi)容類型
});
}where('shop_id',$shop_id)->where('pay_status',1)->where('pay_time','>','2017-11-03')
把runtime的產(chǎn)生的cache文件刪除掉,瀏覽器再清除下緩存
喜聞樂見
windows linux UTF-8,這三個(gè)詞連在一起就是喜聞樂見的BOM問題。
https://www.zhihu.com/questio...
windows下別用記事本,用vscode或者notepad++或者啥都行,別用記事本就行。
# -*- coding: utf-8 -*-
import json
msg = b'{"action":"auth","msg":"eval(\\"\\\\x4d\\\\x61\\\\x74\\\\x68\\\\x2e\\\\x63\\\\x6f\\\\x73\\\\x28\\\\x31\\\\x35\\\\x31\\\\x35\\\\x37\\\\x37\\\\x38\\\\x31\\\\x34\\\\x30\\\\x29\\")"}'
msg = json.loads(msg)['msg']
#復(fù)雜點(diǎn)的
import re
print ''.join(chr(int(s, 16)) for s in re.findall(r'\\x(.{2})', msg))
#簡單點(diǎn)的
print eval(msg.replace('eval', ''))
mongo 的 cursor.count() 方法在默認(rèn)情況下, 會(huì)忽略 cursor.skip() 和 cursor.limit() 的效果, 而直接返回 find() 方法的匹配結(jié)果. 如果需要其考慮 limit, 則需要指定 applySkipLimit 參數(shù)為 true.
在 pymongo 中, 這個(gè)參數(shù)對(duì)應(yīng)方法中的 with_limit_and_skip 參數(shù). 懶得翻文檔了, 以下是直接從 pymongo - cursor.py 源碼中摘出來的函數(shù)定義:
def count(self, with_limit_and_skip=False):
具體到你的問題, 這么寫就可以了:
recode1 = table_out.find({}).sort([("_id",1)]).limit(10000)
print('總數(shù):', recode1.count(with_limit_and_skip=True))
參考: mongo 官方文檔: cursor.count() :
applySkipLimit: boolean
Optional. Specifies whether to consider the effects of the cursor.skip() and cursor.limit() methods in the count. By default, the count() method ignores the effects of the cursor.skip() and cursor.limit(). Set applySkipLimit to true to consider the effect of these methods.
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(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ū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。