-
什么是面向?qū)ο缶幊?/strong>
程序設(shè)計(jì)的范式
抽象并建立對(duì)象模型
程序是不同對(duì)象相互調(diào)用的邏輯
查看全部 -
Python進(jìn)階課程學(xué)習(xí)內(nèi)容:
面向?qū)ο缶幊?/p>
類的繼承
類的特殊方法
Python模塊
Python文件編程
Python網(wǎng)絡(luò)編程
函數(shù)式編程
查看全部 -
在實(shí)際工程中,close()文件之前,為了正確關(guān)閉文件,需要考慮各種異常情況,這是非常麻煩的一件事,Python提供with關(guān)鍵字,可以免除這類后顧之憂。
with關(guān)鍵字對(duì)資源進(jìn)行訪問(wèn)的場(chǎng)合,會(huì)確保不管在使用過(guò)程中是否發(fā)生異常,都會(huì)執(zhí)行必要的“清理”的操作,釋放資源,比如文件使用后自動(dòng)關(guān)閉等等。查看全部 -
使用a的打開(kāi)方式打開(kāi)文件,文件游標(biāo)默認(rèn)是在文件的尾部,因此,可以便捷的往文件尾部添加內(nèi)容,除此以外,文件對(duì)象還提供seek()方法,可以移動(dòng)文件的游標(biāo)位置,它接受一個(gè)參數(shù),表示文件的位置,0:文件首部,1:當(dāng)前位置,2:文件尾部,通過(guò)seek()可以把文件游標(biāo)移動(dòng)到文件首部但不刪除文件的內(nèi)容。查看全部
-
因此,通過(guò)input()函數(shù),則可以改變上面程序運(yùn)行的范圍,注意:輸入的是字符串,需要轉(zhuǎn)型為數(shù)字類型。查看全部
-
f?=?open('test.txt','r') lines?=?f.readlines() f1?=?open('test1.txt','w') for?line?in?lines: ????line?=?line[::-1] ????line?=?line[1:] ????f1.write(line+'\n') ????print(line) f1.close() f.close()
Line6和Line7作用去除反轉(zhuǎn)后開(kāi)頭的'\n'、在結(jié)尾追加\n
查看全部 -
# Enter a code
class Person(object):
? ? def __init__(self,name,gender):
? ? ? ? self.name = name
? ? ? ? self.gender = gender
class SkillMixin(object):
? ? def __init__(self,skill):
? ? ? ? self.skill = skill
class Student(Person):
? ? def __init__(self,name,gender,score):
? ? ? ? super(Student,self).__init__(name,gender)
? ? ? ? self.score = score
class Tercher(Person):
? ? def __init__(self,name,gender,course):
? ? ? ? super(Tercher,self).__init__(name,gender)
? ? ? ? self.course = course
class BasketballMixin(SkillMixin):
? ? def skill(self):
? ? ? ? return 'Skill is basketball'
class FootballMixin(SkillMixin):
? ? def skill(self):
? ? ? ? return 'Skill is football'
class BStudent(Student,BasketballMixin):
? ? def __init__(self,name,gender,score = 0):
? ? ? ? super(BStudent,self).__init__(name,gender,score)
class FTercher(Tercher,FootballMixin):
? ? def __init__(self,name,gender,course = ' '):
? ? ? ? super(FTercher,self).__init__(name,gender,course)
? ??
s = BStudent('Bob','Male')
print('Studen\'s name is {}, Gender is {}, Skill is {}.'.format(s.name, s.gender ,s.skill()))
t = FTercher('Alice','Female')
print('Tercher\'s name is {}, Gender is {}, Skill is {}.'.format(t.name, t.gender ,t.skill()))
Line27、Line30?不知道super()能不能不從父類全部繼承?
查看全部 -
通過(guò)函數(shù)isinstance()可以判斷一個(gè)變量的類型。
在繼承鏈上,一個(gè)父類的實(shí)例不能是子類類型,因?yàn)樽宇惐雀割惗嗔艘恍傩院头椒ā?br />一條繼承鏈上,一個(gè)實(shí)例可以看成它本身的類型,也可以看成它父類的類型。查看全部 -
定義父類
class Person:
??? def __init__(self,name,age):
???????? self.name = name
???????? self.age = age
定義子類
class Student(Person):
???? def __init__(self,name,age,score):
????????? Person.__init__(self,name,age)? 必須顯示調(diào)用父類構(gòu)造方法
????????? self.score = score
查看全部 -
類方法需要使用@classmethod來(lái)標(biāo)記為類方法,否則定義的還是實(shí)例方法
類方法的第一個(gè)參數(shù)將傳入類本身,通常將參數(shù)名命名為 cls,上面的 cls.__localtion 實(shí)際上相當(dāng)于Animal.__localtion。
?????? 因?yàn)槭窃陬惿险{(diào)用,而非實(shí)例上調(diào)用,因此類方法無(wú)法獲得任何實(shí)例變量,只能獲得類的引用。查看全部 -
私有屬性沒(méi)有辦法從外部訪問(wèn),只能在類的內(nèi)部操作;那如果外部需要操作私有屬性怎么辦?這個(gè)時(shí)候可以通過(guò)定義類或者實(shí)例的方法來(lái)操作私有屬性
實(shí)例的方法指的就是在類中定義的函數(shù),實(shí)例方法的第一個(gè)參數(shù)永遠(yuǎn)都是self,self是一個(gè)引用,指向調(diào)用該方法的實(shí)例對(duì)象本身,除此以外,其他參數(shù)和普通函數(shù)是完全一樣的。查看全部 -
類屬性和實(shí)例屬性同時(shí)存在的情況下,實(shí)例屬性的優(yōu)先級(jí)是要高于類屬性的,在操作實(shí)例的時(shí)候,優(yōu)先是操作實(shí)例的屬性。
當(dāng)實(shí)例沒(méi)有和類同名的時(shí)候,通過(guò)實(shí)例對(duì)象,依然可以訪問(wèn)到類屬性。
通過(guò)實(shí)例是無(wú)法修改類的屬性的,事實(shí)上,通過(guò)實(shí)例方法修改類屬性,只是給實(shí)例綁定了一個(gè)對(duì)應(yīng)的實(shí)例屬性查看全部 -
通過(guò)實(shí)例是無(wú)法修改類的屬性的,事實(shí)上,通過(guò)實(shí)例方法修改類屬性,只是給實(shí)例綁定了一個(gè)對(duì)應(yīng)的實(shí)例屬性:
因此,需要特別注意,盡量不要通過(guò)實(shí)例來(lái)修改類屬性,否則很容易引發(fā)意想不到的錯(cuò)誤。查看全部 -
在類屬性和實(shí)例屬性同時(shí)存在的情況下,實(shí)例屬性的優(yōu)先級(jí)是要高于類屬性的,在操作實(shí)例的時(shí)候,優(yōu)先是操作實(shí)例的屬性。
另外,當(dāng)實(shí)例沒(méi)有和類同名的時(shí)候,通過(guò)實(shí)例對(duì)象,依然可以訪問(wèn)到類屬性。查看全部 -
私有屬性是以雙下劃線'__'開(kāi)頭的屬性。
# 類私有屬性
class Animal(object):
? ?__localtion = 'Asia'
print(Animal.__localtion)
Traceback (most recent call last):
?File "<stdin>", line 1, in <module>
AttributeError: type object 'Animal' has no attribute '__localtion'查看全部
舉報(bào)