首页 > 其他分享 >11.6面向对象的3个装饰器

11.6面向对象的3个装饰器

时间:2022-09-07 19:23:54浏览次数:63  
标签:name ## 11.6 self 面向对象 def print 装饰 color

# 比如计算学生得年龄,传生日
# import time
#
# class Student:
#
# def __init__(self,name,birth):
# self.birth = birth
# self.name = name
#
# @property # 伪类装饰器,把方法伪装成属性,让我们得语义更加合理
# def age(self):
# return time.localtime().tm_year - self.birth
#
#
# zhangsan=Student('张三',2001)
# # print(zhangsan.age())
# print(zhangsan.name)
# print(zhangsan.age)


# @staticmethod - 静态方法装饰器,可以讲类中得实例方法,可以通过类名直接调用,不经过实例化直接调用,
# 该装饰器调用得时候不需要传self ,cls参数,无法调用带有普通带有self得函数

# class Cat(object):
#
# def __init__(self,name,_color):
# self.name = name
# self._color = _color
#
#
# def eat(self):
# print(self.name,'喜欢吃鱼')
#
# @staticmethod
# def color():
# print('ssssssss')
# # print(self.name,self._color)
#
# # cat=Cat('小白猫','白色')
# # Cat.color(cat)
#
# cat=Cat('小白猫','白色')
# cat.color()


# @classmethod -类方法装饰器
# 可以将类里面得函数不经过实例化直接调用
# class Manager:
#
# def __init__(self,name):
# self.name = name
# print(self.name)
#
# @classmethod
# def login(cls):
# print('cls',cls)
# print('Manager',Manager)
# username = input('>>>')
# # Manager(username)
# cls(username)
#
# Manager.login()


# 总结:
# @property 把方法伪装成属性
# @staticmethod # 静态方法,没有默认参数,可以用类名来调用,不需要实例化
# @classmethod # 类方法 ,cls作为默认参数,可以通过类名直接调用,不需要实例化

标签:name,##,11.6,self,面向对象,def,print,装饰,color
From: https://www.cnblogs.com/zhh0125/p/16666932.html

相关文章

  • 10.1纯函数面向对象编程
    #人狗大战#人-角色#名称等级血量攻击力性别职业#zhangsan={'name':"zhangsan",'level':1,'hp':200,'ad':40,'性别':'不详','职业':'射手'}##l......
  • 10.2面向对象
    #面向对象语法#什么是抽象?#类-抽象的角色-具体的#我们创建类的时候会给这个类创建很多抽象的属性和名字,#具体值都是创建对象(角色)过程中体现出来的#class类名:类名......
  • 面向对象编程
    背景:1.游戏引擎运行于操作系统上,操作系统又运行于特定的硬件(CUP/RAM/IO)上,因此硬件的瓶颈会限制游戏引擎的性能;2.由于摩尔定律接近天花板,芯片上晶体管的密集程度再增加的话......
  • 面向对象-中级篇
    包:什么是包?  可以把它理解为一个文件夹包的作用?  区分相同名称的类,方便管理类,控制访问范围如何创建包?和创建文件夹一样如何引入包?语法:import包,如:importjav......
  • 面向对象编程
    面向对象编程什么是面向对象?面向对象编程(OOP)是**一种计算机编程模型,它围绕数据或对象而不是功能和逻辑来组织软件设计**.对象可以定义为具有独特属性和行为的数据字......
  • 面向对象分析与设计的底层逻辑
    作者:不拔面向对象是符合人认识事物的基本方法人是怎么认识事物的在面向对象出现之前,已有面向过程的分析方法,为什么面向对象被提出了呢?究其本质原因,人们发现面向过程并......
  • 【Java基础】面向对象的特征:继承性
    1.什么是继承继承表示两个类之间的一种关系。子类继承父类,则子类具有父类的属性和方法,同时可以扩展自己属性或功能。子类更具体,父类更抽象。2.为什么要有继承定义两......
  • 什么是面向对象编程(OOP)?
    什么是面向对象编程(OOP)?面向对象编程,通常缩写为OOP,是一种流行的编程范式。它被许多软件应用程序/技术公司使用,并得到各种编程语言(例如,C++、Python、Java)的支持。在本文中,......
  • Python 装饰器
    Python装饰器假设我们想为已经编写的代码添加额外的功能,例如我们想在一个特殊的trycatch块中捕获任何错误,我们可以按如下方式进行。defsome_decorator(func):d......
  • C++面向对象-构造函数与析构函数
    以OOP实现一个顺序栈为例,介绍构造函数与析构函数#include<iostream>#include<iterator>usingnamespacestd;/*构造函数和析构函数函数的名字和类名一样,......