一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

第11-13關(guān)要點講解

 cwb929 2020-03-01

第11關(guān) 編程思維:如何debug-殺死那只“機(jī)”生蟲

課程目標(biāo)

  • 學(xué)會debug的方法以及如何避免bug

課程重要內(nèi)容重現(xiàn)

出bug的四種常見類型

  • 報錯會有三個關(guān)鍵信息:

1)line x代表這個bug出現(xiàn)在第x行,在Debug的時候,可以優(yōu)先從第x行開始檢查;

2)^代表bug發(fā)生的位置,這里指出的位置是第二行末尾;

3)錯誤類型,如SyntaxError指的是語法錯誤。對英文不熟悉的直接復(fù)制查百度。

  1. 粗心

  1. 知識不熟練

  1. 思路不清

遇到關(guān)鍵步驟時print出來,看是否達(dá)到我們所期望的結(jié)果,以此來揪出錯誤的那一步。

不明白哪不對的時候,使用#號把后面的代碼注釋掉,一步一步運行,可以幫助排除錯誤。

  1. 被動掉坑

指有時候你的代碼邏輯上并沒有錯,但可能因為用戶的錯誤操作或者是一些“例外情況”而導(dǎo)致程序崩潰。例如:

age = int(input('你今年幾歲了?'))
if age < 18:
    print('不可以喝酒噢')
#當(dāng)輸入的不是純數(shù)字時,會報錯ValueError:invalid literal for int() with base 10 :
#因為,int()函數(shù)不能接受非數(shù)字的字符串。

第12-13關(guān) 類與對象-我有一個“機(jī)器人”

課程目標(biāo)

  1. 了解何為對象

  1. 區(qū)分變量與類屬性,函數(shù)與類方法

  1. 掌握類的實例化及初始化函數(shù)

  1. 熟練繼承與子類定制

課程難點

  1. 初始化函數(shù)的優(yōu)雅改寫

  1. 多層繼承與多重繼承的優(yōu)先級

課程重要內(nèi)容重現(xiàn)

一、類

1、類的創(chuàng)建

1)類名首字母要大寫

2)為區(qū)別普通函數(shù),在類中賦值的變量叫做類屬性(attribute),類中定義的函數(shù)叫做類方法(method)

3)實例方法是指類中參數(shù)帶self的函數(shù),是類方法的一種形式,也是最常見的用法。

4)類的創(chuàng)建:class語句

5)類屬性的創(chuàng)建:賦值語句

6)實例方法的創(chuàng)建:def method1(self):

2、實例化

剛被創(chuàng)造出來的實例與類一模一樣。

格式 : 實例名=類名()

3、調(diào)用類的屬性和方法

1)當(dāng)實例一被創(chuàng)建出來,就可以調(diào)用類中的屬性和方法。參數(shù)self在定義時不能丟,在調(diào)用時要忽略。

格式: 實例名.屬性 和 實例名.方法

class Computer:
screen = True
def start(self):
print('電腦正在開機(jī)中……')

my_computer = Computer()#實例化
print(my_computer.screen)#調(diào)用類屬性
my_computer.start()#調(diào)用類方法

2)類的內(nèi)部調(diào)用類屬性

實例名person會像參數(shù)一樣傳給self,替換掉self,第六行的self.name等價于person.name,然后person.name相當(dāng)于調(diào)用了第2行的類屬性name。也就是說,self起到提示傳參位置的作用,當(dāng)在類的方法內(nèi)部想調(diào)用類屬性或其他方法時,就要采用self.屬性名或self.方法名的格式。(相當(dāng)于改變了作用域)

class Chinese:
name = '吳楓' # 類屬性name
def say(self):
print(self.name + '是中國人')

person = Chinese() # 創(chuàng)建Chinese的實例person
person.say() # 調(diào)用實例方法

二、初始化函數(shù)

在初始化方法內(nèi)部完成類屬性的創(chuàng)建,為類屬性設(shè)置初始值,這樣類中的其他方法就能直接、隨時調(diào)用。不需要再調(diào)用__init__()。

class chinese:
def __init__(self, name, birth, region)
self.name = name # self.name = '吳楓'
self.birth = birth # self.birth = '廣東'
self.region = region # self.region = '深圳'
def born(self):
print(self.name + '出生在' + self.birth)
def live(self):
print(self.name + '居住在' + self.region)
person = Chinese('吳楓','廣東','深圳') # 傳入初始化方法的參數(shù)
person.born()
person.live()

三、繼承

子類也可以在繼承的基礎(chǔ)上進(jìn)行個性化的定制,包括:(1)創(chuàng)建新屬性、新方法;(2)修改繼承到的屬性或方法。

格式:class A(B):,表示A繼承了類B。

子類繼承的屬性和方法,也會傳遞給子類創(chuàng)建的實例。很多類在創(chuàng)建時也不帶括號,如class A:實際上,class A:在運行時相當(dāng)于class A(object):。而object,是所有類的父類,我們將其稱為根類。

  • 父類創(chuàng)建的實例不屬于子類。

  • 子類創(chuàng)建的實例同時也屬于父類。

  • 類創(chuàng)建的實例都屬于根類。

1)多層繼承

class B(A):
class C(B):

多層繼承(縱向)時,子類創(chuàng)建的實例可調(diào)用所有層級父類的屬性和方法。

2)多重繼承

class A(B,C,D):

多重繼承(橫向)時,根據(jù)與子類的相關(guān)順序從左往右排,A是B,C,D三個父類的子類,但是在調(diào)用類方法和類屬性時,優(yōu)先從B中找,找不到再去C(就近原則)。

class C0:
name = 'C0'
class C2(C0):
num = 2
class C1:
num = 1
class C3:
name = 'C3'
class C4(C1,C2,C3):
pass
ins = C4()
print(ins.name) 一直 #打印出C0,即會沿著C2父類一直往其父類里找,直到完全找不到再去C3找。
print(ins.num) #打印出1

四、定制

  • 新增:在子類下新建屬性或方法。

  • 修改:在子類中對繼承的父類代碼的修改(并不會改變父類內(nèi)部代碼)

五、其他

  • isinstance(實例,類)可判斷該實例是否屬于某個類。

  • 如果方法名形式是左右?guī)щp下劃線的,那么就屬于特殊方法(如__init__,初始化方法),有著特殊的功能,如實例化時會直接調(diào)用。(定義了初始化函數(shù)之后還是可以定義多個這樣的特殊方法的)

  • 向上取整函數(shù)ceil(),向下取整int(),四舍五入round()。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    丝袜人妻夜夜爽一区二区三区| 我的性感妹妹在线观看| 中文字幕亚洲精品乱码加勒比 | 美女被啪的视频在线观看| 亚洲欧洲一区二区综合精品| 精品国产成人av一区二区三区| 国产中文另类天堂二区| 欧美日韩国产欧美日韩| 91亚洲国产日韩在线| 暴力三级a特黄在线观看| 精品国产品国语在线不卡| 久久综合九色综合欧美| 成人午夜视频在线播放| 麻豆一区二区三区在线免费| 中国一区二区三区不卡| 日韩精品视频一二三区| 国产日韩欧美在线播放| 中文字幕五月婷婷免费| 亚洲中文字幕视频在线观看| 视频一区二区黄色线观看| 亚洲伊人久久精品国产| 91欧美一区二区三区成人| 亚洲人妻av中文字幕| 一区二区三区亚洲国产| 人人妻人人澡人人夜夜| 欧美日韩高清不卡在线播放| 精品高清美女精品国产区| 麻豆果冻传媒一二三区| 黄色在线免费高清观看| 亚洲熟女乱色一区二区三区| 久久国产成人精品国产成人亚洲| 日韩精品视频高清在线观看| 日韩高清一区二区三区四区| 国产精品伦一区二区三区在线| 在线观看视频成人午夜| 日韩精品中文在线观看| 欧美日韩精品综合一区| 美女被后入视频在线观看| 色综合视频一区二区观看| 精品人妻一区二区三区免费| 色婷婷人妻av毛片一区二区三区|