您的位置:首页 > 编程语言 > Python开发

Python---面向对象装饰器

2016-01-03 21:47 651 查看
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())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: