1. 程式人生 > >Python---面向物件裝飾器

Python---面向物件裝飾器

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())