不歸路系列:Python入門之旅-一定要注意縮進(jìn)?。。。ㄍ扑])
因?yàn)楣ぷ鳎☉卸瑁?,幾年了,斷斷續(xù)續(xù)學(xué)習(xí)又半途而廢了一個(gè)又一個(gè)技能。試著開(kāi)始用博客記錄學(xué)習(xí)過(guò)程中的問(wèn)題和解決方式,以便激勵(lì)自己和順便萬(wàn)一幫助了別人呢。
最近面向?qū)ο髮?xiě)了個(gè)Python類,到訪問(wèn)限制(私有屬性)時(shí)竟然報(bào)錯(cuò),好多天百思不得其姐,沒(méi)啥破綻啊!代碼如下,可就是報(bào)錯(cuò)?。ê竺嬗袌?bào)錯(cuò)截圖)
class Person(object): def run(self): print("run") def eat(self,food): print("eat " + food) def say(self): print("My name is %s,I am %d years old" % (self.name,self.age)) # 構(gòu)造函數(shù),創(chuàng)建對(duì)象時(shí)默認(rèn)的初始化 def __init__(self,name,age,height,weight,money): self.name = name self.age = age self.height = height self.weight = weight self.__money = money #實(shí)際上是_Person__money print("哈嘍!我是%s,我今年%d歲了。目前存款%f" %(self.name,self.age,self.__money)) # 想要內(nèi)部屬性不被直接外部訪問(wèn),屬性前加__,就變成了私有屬性private self.__money = 100 # 私有屬性需要定義get、set方法來(lái)訪問(wèn)和賦值 def setMoney(self,money): if(money < 0): self.__money = 0 else: self.__money = money def getMoney(self): return self.__money person = Person("小明", 5, 120, 28,93.1) # 屬性可直接被訪問(wèn) person.age = 10 print(person.age) # 私有屬性不可直接被訪問(wèn)或賦值,因?yàn)榻忉屍靼裚_money變成了_Person__money(可以用這個(gè)訪問(wèn)到私有屬性的money,但是強(qiáng)烈建議不要),以下2行會(huì)報(bào)錯(cuò) # person.money = 10 # print(person.__money) # 可以調(diào)用內(nèi)部方法訪問(wèn)和賦值 print(person.getMoney()) person.setMoney(-10) print(person.getMoney())
Excuse me?!咋個(gè)就沒(méi)有,那不上面大大擺著倆內(nèi)部方法嘛!
昨天看著看著突然迸發(fā)了個(gè)小火星子,想起來(lái)縮進(jìn)不對(duì)了,如圖:
把兩個(gè)方法減一個(gè)縮進(jìn),就算是出來(lái)了,是類的方法,和__init__并列了,自然就正確了。
class Person(object): def run(self): print("run") def eat(self,food): print("eat " + food) def say(self): print("My name is %s,I am %d years old" % (self.name,self.age)) # 構(gòu)造函數(shù),創(chuàng)建對(duì)象時(shí)默認(rèn)的初始化 def __init__(self,name,age,height,weight,money): self.name = name self.age = age self.height = height self.weight = weight self.__money = money #實(shí)際上是_Person__money print("哈嘍!我是%s,我今年%d歲了。目前存款%f" %(self.name,self.age,self.__money)) # 想要內(nèi)部屬性不被直接外部訪問(wèn),屬性前加__,就變成了私有屬性private self.__money = 100 # 私有屬性需要定義get、set方法來(lái)訪問(wèn)和賦值 def setMoney(self, money): if (money < 0): self.__money = 0 else: self.__money = money def getMoney(self): return self.__money person = Person("小明", 5, 120, 28,93.1) # 屬性可直接被訪問(wèn) person.age = 10 print(person.age) # 私有屬性不可直接被訪問(wèn)或賦值,因?yàn)榻忉屍靼裚_money變成了_Person__money(可以用這個(gè)訪問(wèn)到私有屬性的money,但是強(qiáng)烈建議不要),以下2行會(huì)報(bào)錯(cuò) # person.money = 10 # print(person.__money) # 可以調(diào)用內(nèi)部方法訪問(wèn)和賦值 print(person.getMoney()) person.setMoney(-10) print(person.getMoney())
總結(jié)下:一定要細(xì)心!細(xì)心??!再細(xì)心?。?!
注意縮進(jìn)
注意縮進(jìn)
注意縮進(jìn)
以上所述是小編給大家介紹的Python入門一定要注意縮進(jìn)詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Python基于百度AI實(shí)現(xiàn)OCR文字識(shí)別
這篇文章主要介紹了Python基于百度AI實(shí)現(xiàn)OCR文字識(shí)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04TensorFlow實(shí)現(xiàn)簡(jiǎn)單線性回歸
這篇文章主要為大家詳細(xì)介紹了TensorFlow實(shí)現(xiàn)簡(jiǎn)單線性回歸,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03python光學(xué)仿真通過(guò)菲涅耳公式實(shí)現(xiàn)波動(dòng)模型
這篇文章主要介紹了python光學(xué)仿真通過(guò)菲涅耳公式實(shí)現(xiàn)波動(dòng)模型的示例解析原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-10-10python2 與python3的print區(qū)別小結(jié)
這篇文章主要介紹了python2 與python3的print區(qū)別小結(jié),需要的朋友可以參考下2018-01-01簡(jiǎn)單了解Python matplotlib線的屬性
這篇文章主要介紹了簡(jiǎn)單了解Python matplotlib線的屬性,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-06-06python讀取文件夾中圖片的圖片名并寫(xiě)入excel表格
這篇文章介紹了使用python讀取文件夾中圖片的圖片名并寫(xiě)入excel表格的方法。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12利用Python中unittest實(shí)現(xiàn)簡(jiǎn)單的單元測(cè)試實(shí)例詳解
如果項(xiàng)目復(fù)雜,進(jìn)行單元測(cè)試是保證降低出錯(cuò)率的好方法,Python提供的unittest可以很方便的實(shí)現(xiàn)單元測(cè)試,從而可以替換掉繁瑣雜亂的main函數(shù)測(cè)試的方法,將測(cè)試用例、測(cè)試方法進(jìn)行統(tǒng)一的管理和維護(hù)。本文主要介紹了利用Python中unittest實(shí)現(xiàn)簡(jiǎn)單的單元測(cè)試。2017-01-01淺談基于Pytest框架的自動(dòng)化測(cè)試開(kāi)發(fā)實(shí)踐
Pytest是Python的一種易用、高效和靈活的單元測(cè)試框架,本文主要介紹了基于Pytest框架的自動(dòng)化測(cè)試開(kāi)發(fā)實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12