課程
/后端開發(fā)
/Python
/Python3 進階教程(新版)
init方法不是已經(jīng)對參數(shù)進行了初始化,為什么還需要set方法再一次賦值
2021-03-03
源自:Python3 進階教程(新版) 2-8
正在回答
作者的意思是set 可以對實列化進行單獨修改,比如dog.set('nomi'), 然后再調(diào)用的時候dog.get_name(),所輸出的結果就是nomi. 如果不用增加set實例方法的話,修改變量需要重新定義實例化
get和set都沒有什么意義,只是一個單純的函數(shù)名字,我把get或者set改成A11也可以執(zhí)行
class?Animal(object):
????count=0
????def?__init__(self,name,age,localtion):
????????self.__name=name
????????self.__age=age
????????self.__localtion=localtion
????????Animal.count=Animal.count+1
????def?A11_name(self):
????????return?self.__name
????def?A11_age(self):
????????return?self.__age
????def?A11_localtion(self):
????????return?self.__localtion
dog=Animal('xiaohei','3','beijing')
cat=Animal('dabai','99','tianjin')
print(dog.A11_name())
print(dog.A11_age())
print(dog.A11_localtion())
print(cat.A11_name())
print(cat.A11_age())
print(dog==cat)
print(Animal.count)
不需要set方法,直接get也是可以的
class Animal(object):
? ? def __init__(self,name,age,localtion):
? ? ? ? self.__name = name
? ? ? ? self.__age = age
? ? ? ? self.__localtion = localtion
? ? ? ??
? ? def get_name(self):
? ? ? ? return self.__name
? ? def get_age(self):
? ? ? ? return self.__age
? ??
? ? def get_localtion(self):
? ? ? ? return self.__localtion
dog = Animal('JM',3,'SZ')
cat = Animal('BS',2,'SH')
wolf = Animal('JWH',900,'OF')
print('name:{},age:{},localtion:{}'.format(dog.get_name(),dog.get_age(),dog.get_localtion()))
舉報
學習函數(shù)式、模塊和面向?qū)ο缶幊?,掌握Python高級程序設計
1 回答多重繼承init的參數(shù)問題
3 回答定義調(diào)用問題:為什么set方法不起作用。1.一個@classmethod下,set在get后,不行;set在get前,可行。2.分別類定義set和get,可行。
2 回答為什么沒有重復輸出相同的數(shù)字
1 回答課程內(nèi)容挺好。有個小小的瑕疵
3 回答用readlines()方法讀取文件內(nèi)容,當設置不同的hint參數(shù)時,比如hint=1,23...為什么結果都是只取第一行的內(nèi)容???
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2021-07-07
作者的意思是set 可以對實列化進行單獨修改,比如dog.set('nomi'), 然后再調(diào)用的時候dog.get_name(),所輸出的結果就是nomi. 如果不用增加set實例方法的話,修改變量需要重新定義實例化
2021-05-17
get和set都沒有什么意義,只是一個單純的函數(shù)名字,我把get或者set改成A11也可以執(zhí)行
class?Animal(object):
????count=0
????def?__init__(self,name,age,localtion):
????????self.__name=name
????????self.__age=age
????????self.__localtion=localtion
????????Animal.count=Animal.count+1
????def?A11_name(self):
????????return?self.__name
????def?A11_age(self):
????????return?self.__age
????def?A11_localtion(self):
????????return?self.__localtion
dog=Animal('xiaohei','3','beijing')
cat=Animal('dabai','99','tianjin')
print(dog.A11_name())
print(dog.A11_age())
print(dog.A11_localtion())
print(cat.A11_name())
print(cat.A11_age())
print(dog.A11_localtion())
print(dog==cat)
print(Animal.count)
2021-03-03
不需要set方法,直接get也是可以的
class Animal(object):
? ? def __init__(self,name,age,localtion):
? ? ? ? self.__name = name
? ? ? ? self.__age = age
? ? ? ? self.__localtion = localtion
? ? ? ??
? ? def get_name(self):
? ? ? ? return self.__name
? ? ? ??
? ? def get_age(self):
? ? ? ? return self.__age
? ??
? ? def get_localtion(self):
? ? ? ? return self.__localtion
? ? ? ??
dog = Animal('JM',3,'SZ')
cat = Animal('BS',2,'SH')
wolf = Animal('JWH',900,'OF')
print('name:{},age:{},localtion:{}'.format(dog.get_name(),dog.get_age(),dog.get_localtion()))