# 1:類屬性:在類裡面和方法外面定義的屬性稱為類屬性,類屬性屬於當前類。
# 例項屬性:(物件屬性):在init方法裡面定義的屬性稱為例項物件,例項屬性屬於某個物件。
class
person
(object):
"""定義類屬性和例項屬性"""
# 類屬性
__country =
"中國"
skin_color =
"yellow"
def__init__
(self, name, age)
:# 例項屬性
self.name = name
self.age = age
p = person(
"王昭君",20
)# 訪問例項屬性
print
(p.name)
# 修改例項屬性
p.name =
"李四"
person.name =
"王五"
# 檢視類中的所有類屬性和方法
print
(person.__dict__)
## 檢視類中的例項屬性和方法
print
(p.__dict__)
## 物件可以訪問類屬性,但是不能夠修改類屬性
p = person(
"李四",20
)print
(p.skin_color)
# 如果物件想要修改類屬性怎麼做???
# 定義類方法,進行呼叫
# 2:多肽:,呼叫相同的方法,出現的不同的表現形式。
# 場景:不同的物件,想要完成相同的操作。
deffly
(obj)
: obj.fly(
)class
duck
(object):
deffly
(self)
:print
("鴨子飛......."
)duck = duck(
)fly(duck)
class
swan
(object):
deffly
(self)
:print
("天鵝飛......"
)swan = swan(
)fly(swan)
# 3:方法的種類:
# 例項方法:方法第乙個引數是self
# 類方法:方法第乙個引數是cls ,方法上有@classmethod關鍵字
# 靜態方法:無self和cls關鍵字 ,方法上用@staticmethod關鍵字
#例項方法使用的場景:對私有例項屬性的操作可以通過例項方法來完成
class
tercher
(object):
def__init__
(self, name, age)
: self.name = name
self.__age = age
defget_age
(self)
:return self.__age
# 例項方法可以通過例項,也可以通過類來完成。
t1 = tercher(
"王老師",30
)age = t1.get_age(
)print
(age)
age = tercher.get_age(t1)
print
(age)
# 類方法:
class
teacher2
(object):
__country =
"南韓"
@classmethod
defget_country
(cls)
:print
("當前的類是:"
, cls)
#對於私有類屬性的操作可以使用類方法
return cls.__country
country = teacher2.get_country(
)print
(country)
# 類方法也可以使用物件來呼叫,但不推薦,因為不方便,還要建立乙個物件
t2 = teacher2(
)country = t2.get_country(
)print
(country)
# 靜態方法:
class
tercher3
(object):
def__init__
(self, name, age)
: self.name = name
self.__age = age
defget_age
(self)
:return self.__age
@staticmethod
defsum
(num1, num2)
:return num1 + num2
result = tercher3.
sum(1,
2)print
(result)
異常捕獲機制:
# 1:異常捕獲機制
# 格式:
# try:
# 執行**
# except:
# 捕獲的異常
# 案例1:陣列下標越界
try:
my_lsit =[1
,3,5
] my_lsit[10]
except indexerror as e:
print
("異常資訊為:"
, e)
# 執行結果:
# 異常資訊為: list index out of range
# 案例2:鍵錯誤
try:
my_dict =
*** = my_dict[
"***"
]except keyerror as e:
print
("異常資訊為:"
, e,
type
(e))
# 輸出結果是:
# 異常資訊為: '***'
# 注意:異常資訊一般指定exception即可,因為大多數的異常類繼承這個類。
# 擴充套件:如果想要捕獲任何的異常資訊,則可以指定baseexception(異常類的根類)
# 2:捕獲異常的完整語句:
# try:
# 可能出現異常的語句
# except exception as e:
# **出現的異常
# else:
# **執行時無異常則執行的語句
# finally:
# 必須執行的**
## 3:異常的傳遞:
# 當執行**是如果遇到了錯誤,異常會從**內部往外一層層的進行傳遞
# 如果遇到最外層也沒有捕獲,那麼程式崩潰。
# 4:自定義異常:
# 注:自定義異常必須繼承baseexception 或 exception
class
myexception
(exception)
:def
__init__
(self, error_msg)
: self.error_msg = error_msg
def__str__
(self)
:return self.error_msg
passworld =
input
("請輸入您的密碼:"
)try:if
len(passworld)
<6:
raise myexception(
"密碼不夠6位!!!"
)except exception as e:
print
("出現異常了:"
, e,
type
(e))
Python學習筆記 day0
本部落格標題設計敏感關鍵字0day,違反相關法律法規,現已處理。1.輸入 raw input 這個可以輸入一行。和c 不同,它不能讀取單個整數 我的意思是,它是以字串儲存的。所以沒有什麼諸如 d這種東西。name raw input 這樣就可以讀入乙個字串,相當於gets name 考慮到人性化設計...
python闖關 python闖關 Day05
乙個簡單的 選單 usr bin env python coding utf 8 mymenu 動物 貓 黃貓 花貓 狗 二哈 金毛 植物 樹 大樹 小樹 草 綠草 矮草 menu list list mymenu.keys while true print 編號 center 50,for i i...
python闖關 python闖關 Day02
q1 寫乙個使用者迴圈猜年齡的遊戲,猜對就退出,猜不對就繼續猜,猜三次,提示使用者是否繼續,使用者回答y或者y就繼續猜,三次之後再重複,回答n或n就結束遊戲。usr bin env python coding utf 8 猜年齡 import random age random.randint 1,...