第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

A類在B類中被使用,所以A類必須在文件中先被定義?有先后順序??

A類在B類中被使用,所以A類必須在文件中先被定義?有先后順序??

django中對(duì)數(shù)據(jù)庫(kù)增加額外的操作,有一種辦法是增加額外的manager方法是為模塊添加表級(jí)功能。比如下面這塊代碼段,我在models.py這個(gè)文件里面定義的:fromdjango.dbimportmodels#...AuthorandPublishermodelshere...classBookManager(models.Manager):deftitle_count(self,keyword):returnself.filter(title__icontains=keyword).count()classBook(models.Model):title=models.CharField(max_length=100)authors=models.ManyToManyField(Author)publisher=models.ForeignKey(Publisher)publication_date=models.DateField()num_pages=models.IntegerField(blank=True,null=True)objects=BookManager()def__unicode__(self):returnself.title但是,發(fā)現(xiàn)一個(gè)問(wèn)題,如果我先定義了Book()這個(gè)模型,再定義BookManager()這個(gè)模型,會(huì)報(bào)"NameError:name'BookManager'isnotdefined",顯然是因?yàn)樵贐ook類中使用了objects=BookManager()這個(gè)原因。而我印象中,似乎定義函數(shù)和類是沒(méi)有先后關(guān)系的;會(huì)在使用的時(shí)候自動(dòng)查看是否聲明過(guò)。請(qǐng)大大幫指點(diǎn)下我這塊的知識(shí)盲點(diǎn)。謝謝?。●R年恭喜發(fā)財(cái)!
查看完整描述

2 回答

?
守候你守候我

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊

python是解釋型語(yǔ)言,雖然會(huì)進(jìn)行預(yù)編譯生成pyc文件,但主要是對(duì)庫(kù)引用等可重用部分進(jìn)行一些處理,這塊不是很了解哈哈~你可以看看這里
簡(jiǎn)單測(cè)試:
b_1=b()
classb:
pass
報(bào)錯(cuò)
NameError:name'b'isnotdefined
So,類不會(huì)在編譯的時(shí)候提前聲明...在python里面要遵循解釋型語(yǔ)言的一些定義和處理原則。
解釋型語(yǔ)言我就知道javascript會(huì)對(duì)聲明型函數(shù)做預(yù)處理...但是也僅僅是對(duì)聲明式的函數(shù)定義做預(yù)處理,你是不是記混了?以下javascript的函數(shù)聲明做個(gè)參考~
//函數(shù)聲明式定義
functionfoo(num1,num2){
returnnum1+num2;
}
//函數(shù)表達(dá)式定義
varfoo=function(num1,num2){
returnnum1+num2;
};
//使用Function構(gòu)造函數(shù)定義
varfoo=newFunction("num1","num2","returnnum1+num2");
//實(shí)際上創(chuàng)建一個(gè)Function實(shí)例并不一定要賦值給具體的指針,可以直接執(zhí)行
(function(x,y){returnx+y})(1,2);
//之所以用圓括號(hào)把function(){}括起來(lái)是因?yàn)閖s解釋器會(huì)將function解釋為函數(shù)聲明,而函數(shù)聲明不能直接跟著(x,y),我們需要將其轉(zhuǎn)換為函數(shù)表達(dá)式。
//(1,2)表示要傳遞跟函數(shù)的參數(shù)。
//上面的例子也可以寫成:
functionfoo(x,y){
returnx+y;
}(1,2);
//函數(shù)聲明的方式無(wú)法定義匿名函數(shù),因此如果想使用匿名函數(shù),則必須用函數(shù)表達(dá)式的定義方式。
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-09
?
森欄

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊

寫類的函數(shù)時(shí)時(shí)需要的,因?yàn)樵诩虞d模塊時(shí)定義也可以認(rèn)為是被執(zhí)行的,執(zhí)行到
objects=BookManager()
發(fā)現(xiàn)BookManager名字不存在就報(bào)錯(cuò)了。
函數(shù)體或者類方法里面則沒(méi)有這個(gè)限制,因?yàn)闀?huì)從這個(gè)模塊的globals()locals()里面來(lái)找名字,而加載時(shí)名字都已經(jīng)放進(jìn)去了
                            
查看完整回答
反對(duì) 回復(fù) 2019-04-09
  • 2 回答
  • 0 關(guān)注
  • 415 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)