-1
我是Python新手,剛剛到達編程教科書中的OOP章節。Property()如何知道該怎麼做?
教科書沒有說明property()
是如何工作的。
property()
如何知道將名稱更改爲new_name
而不是new_name + "lololol"
?
我創建了set_name2
,因爲我想看看property()
是如何工作的。但令我驚訝的是,這個名字並沒有改變爲new_name + "lololol"
。
# Property Critter
class Critter(object):
"""A virtual pet"""
def __init__(self, name):
print "A new critter has been born!"
self.__name = name
def get_name(self):
return self.__name
def set_name(self, new_name):
if new_name == "":
print "A critter's name can't be an empty string."
else:
self.__name = new_name
print "Name change successful."
def set_name2(self, new_name):
self.__name = new_name + "lololol"
print "Name change successful (set_name2!)"
name = property(get_name, set_name, set_name2)
def talk(self):
print "\nHi, I'm", self.name
# main
crit = Critter("Poochie")
crit.talk()
print "\nMy critter's name is:",
print crit.name
print "\nAttempting to change my critter's name."
crit.name = ""
print "\nAttempting to change my critter's name again."
crit.name = "Randolph"
crit.talk()
raw_input("\n\nPress enter to exit.")
閱讀本則:http://docs.python.org/2/ howto/descriptor.html –
@AshwiniChaudhary我剛剛讀過那個網頁,但我找不到一個簡單的解釋。 – BBedit
如果您瞭解Python類的基礎知識,那麼這就是IMO的最佳解釋。請問一個具體的問題,你需要一個關於屬性的教程。 –