Python---面向物件裝飾器
阿新 • • 發佈:2019-02-15
Class類:
建立一個類:class 類名:
構造方法:def init(self),self代表當前類的引用,類似於java中的this
class Student:
def __init__(self, name, grade): # self相當於java中的this 代表這個類自己
self.name = name
self.grade = grade
def introduce(self):
print("my name is "+self.name)
print("my grade is " +self.grade)
guo=Student("guo","100")
guo.introduce()
裝飾器: @字元
在python語言中,一個函式的內部也可以定義一個函式,函式的引數型別也可以是一個一個函式
將一個函式作為另一個函式的裝飾,思路:
模擬給一個汽車新增一個元件,在汽車類外部包裹一層元件類。
def compose(compose_fun):
def addcompose():
print("給這個汽車添加了一個" + compose_fun)
return compose()
def car():
try:
component = input("請您輸入要給汽車新增的元件" )
return component
except SystemError as error:
print("Please input a String Value " + error)
compose(car())//用compose方法給汽車類新增裝飾
這裡只是練習一下錯誤型別,實際不論輸出什麼都不會報錯= =
在Python中可以使用@字元 為方法指定新增什麼裝飾
將上述程式碼修改後
def compose(compose_fun):
def addCompose():
print("給這個汽車添加了一個" + compose_fun())
return addCompose()
@compose #新增裝飾
def car():
component=input("請您輸入要新增的元件")
return "輪胎"
print(car())