《Pythone編程從入門到實踐》類的學習

class Dog(): #定義一個Dog類,約定:首字母大寫的名稱指的是類
	"""一次模擬小狗的簡單嘗試"""
	
	def __init__(self,name,age):
		#name和age
		#定義了一個方法,類中的函數稱爲方法
		#__init__()這是一個特殊的方法,每次根據Dog類創建實例時,python都會自動運行它
		#約定:開頭和末尾的下劃線,避免默認方法和普通方法名稱衝突
		#此處包含3個形參,形參self必不可少,還必須位於別的形參前面.因爲:
			#python調用_init_()方法來創建Dog實例時,將自動傳入實參self
			#每個與類相關聯的方法調用都會自動傳遞實參self,它是一個指向實例本身的引用,讓實例能否訪問類中的屬性和方法
		"""初始化屬性name和age"""
		self.name = name
		self.age = age
		#以self爲前綴的變量都可供類中的所有方法使用,可以通過類的任何實例來訪問這些變量(面向對象的本質)
		#self.name = name獲取存儲在參數name中的值,再將其存儲在有self前綴的name變量裏面,然後該變量關聯到當前創建的實例
	def sit(self):
		"""模擬小狗被命令蹲下"""
		print(self.name.title() + "is now sitting.")
	#後面的實參調用了_init_方法,後面創建的實例能夠訪問這些方法
	def rool_over(self):
		"""模擬小狗被命令打滾"""
		print(self.name.title() + "roller over!")

#創建一個Dog實例
my_dog = Dog('金豹',5)
#這裏使用了Dog類,我們創建了名字叫'金豹'年齡爲6的小狗,當運行到這行代碼時python會自動使用實參'金豹'和5
	#調用Dog類中的方法__init__().方法__init__()創建了一個表示特定小狗的實例,並使用我們提供的值設置屬性name和age
	#方法__init__()並未顯式的包含return但這裏python自動返回了一個表示這條小狗的實例
	#然後我們將這個實例保存到my_dog中
	#約定:首字母大寫的名稱(如Dog)指的是類,而小寫的名稱(my_dog)指的是根據類創建的實例
	
#訪問屬性	
print("我的狗的名字叫: " + my_dog.name + ".")
print("我的狗的已經" + str(my_dog.age) + "歲啦~")
#my_dog.name,演示了python如何獲悉屬性的值。這裏,python先找打實例my_dog,再找到與這個實例相關聯的屬性name.
#在Dog類中引用這個屬性時,使用的是self.name(如果沒有這個引用,將找不到屬性name)

#調用方法
#根據Dog類創建實例後,可以使用句點的方法來調用Dog類中定義的任何方法
my_dog.sit()
my_dog.rool_over()

#創建多個實例
my_dog = Dog('哈比',7)
your_dog = Dog('二哈',3.5)

print("\nmy dog's name is: " + my_dog.name.title() + ".")
print("my dog's age is: " + str(my_dog.age) + "years old.")
my_dog.sit()

print("\nyour dog's name is: " + your_dog.name.title() + ".")
print("your dog's age is: " + str(your_dog.age) + "years old.")
your_dog.rool_over()

運行後的結果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章