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

面向对象,面向对象的3个装饰器

时间:2023-05-13 20:00:17浏览次数:37  
标签:调用 对象 面向对象 实例 方法 装饰 属性

  • 面向对象 - 断浪狂刀忆年少 - 博客园 (cnblogs.com)
  • 通过函数实现面向对象编程
  • 面向对象的思维内涵
    • 只关心程序中有多少角色
    • 每个角色有什么方法,有什么属性
    • 所有角色都是由一个模板创建的
    • 所有属性和技能都待在自己的角色模板中--------可读性好
    • 能够更加方便得为角色添加技能或属性----------可扩展性好
    • 面向对象有个非常重要的关健侧--抽象
  • class 类名:
    • 类名一般首字母要求大写
    • 类内定义的变量为类的属性,查看类的属性如Car.color
      • 类属性和实例属性的区别
        • 概念,类属性是类的属性,实例属性是对象属性
        • 使用,类属性可以通过类也可以通过实例调用,实例属性只能实例调
    • 变量=类名(),变量实例化成对象
    • __init__(self, , , )初始化方法
      • 在实例化的同时就会调用,实例化的同时会开辟一块内存
      • __new__创造空间给对象,然后__init__初始化
      • 不需要写返回值,默认return None不能改
    • 通过对象.方法()调用 = 类.方法(对象),但是推荐用对象调用
    • __main__指当前文件
    • 函数名一般小写字母开头
  • 对象名
    • 对象.属性 查看对象属性
    • 对象.方法名 调方法
  • 静态变量
    • 类变量,类的属性
    • 操作静态变量时,如果是查看,用类和对象都可以
    • 如果是修改,尽量使用类名修改,这样不会出错
    • 用对象修改静态变量只要用到了赋值,相当于在自己的对象空间内新建属性,并不能修改类空间的内容
  • 组合
    • 对象可以作为另一个类的属性
  • 什么是面向对象
    • 一切皆对象
    • 内置的类
      • str int bool list dict tuple set
      • 内置的类不需要定义可以直接调用
  • 面向对象三大特性----类的三大特性面向对象的三大特性 - 断浪狂刀忆年少 - 博客园 (cnblogs.com)
    • 封装
      • 广义上的封装
        • 把方法和变量都封装在类中
        • 在类的外部不能直接调用
    • 继承
    • 多态
      • 通过继承来实现
      • python中处处是多态
      • 多态的好处
        • 定义一个函数func( a )传入一个对象a
        • 在函数内调用对象的某个方法a.fun(),返回结果
        • 由于多态性质,传入对象不同,函数func的运算过程和返回结果不同
        • 思考了一下,反射结合多态应该很实用,定义一个数据类,增删改查四个子类继承数据类,传入一条SQL,判断类型,然后实例化对应的类,反射写入SQL到对象属性,这时定义一个调用数据库的方法,传入的对象不同,就可以做增删改查
  • 面向对象的三个装饰器
    • '@property'
      • 将一个方法伪装成属性,调用时就不用加括号了
    • '@staticmethod'
      • 声明类的方法是静态方法,不用传任何默认参数,不实例化,类名/对象+方法名可以直接调用
      • 与类和对象没什么直接关系的方法,不获取类也不获取 对象,可以改写到类外面用普通函数
      • 便于管理组织代码
    • '@classmethod'
      • 装饰当前的方法为类方法,默认参数cls,cls指的就是当前类
      • 用cls表示当前类的内存地址
      • 在方法中像获取实例相关的数据,比如获取实例本身,或者实例的属性,或者调用其他实例方法,用实例方法
      • 在方法中获取类相关的数据,比如类属性,类本身,其他的类方法
  • 类直接调用实例方法的问题
  •  

标签:调用,对象,面向对象,实例,方法,装饰,属性
From: https://www.cnblogs.com/leo3notblv/p/17398060.html

相关文章

  • 面向对象特征三:多态性
    对象的多态性多态性,是面向对象中最重要的概念,在Java中的体现:对象的多态性:父类的引用指向子类的对象格式:(父类类型:指子类继承的父类类型,或者实现的接口类型)父类类型变量名=子类对象;举例Personp=newStudent();Objecto=newPerson();//Object类型的变量o,指向Person类......
  • csrf跨站请求伪造、csrf相关装饰器、auth认证模块
    csrf跨站请求伪造、csrf相关装饰器、auth认证模块csrf跨站请求伪造简单来说就是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己曾经认证过的网站并执行一些操作,用于浏览器曾经认证过,所以被访问的网站会以为是真正的用户操作而去执行。经典例子钓鱼网站:假设是一个跟银......
  • Java面向对象
    面向对象编程(OOP)是软件开发的一种新方法,使用这种方法开发的软件具有易维护、可重用和可扩展性等特性。【特征:封装、继承、多态(抽象)】面向对象基本概念:(面向对象的设计就是一个抽象的过程)1、对象:对象就是用来描述客观事物的一个实体。用面向对象的方法解决问题,需要对现实世界中的......
  • JavaScript 面向对象编程
    面向对象编程ObjectOrientedProgramming面向对象编程用对象把数据和方法聚合起来。面向对象编程的优点能写出模块化的代码能使得代码更灵活能提高代码的可重用性面向对象编程的原则继承(inheritance):子类/派生类从父类/基类/超类中派生,形成继承结构封装(encapsulati......
  • python基础学习-面向对象
     Python-Core-50-Courses/第17课:面向对象编程入门.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)Python-Core-50-Courses/第18课:面向对象编程进阶.mdatmaster·jackfrued/Python-Core-50-Courses(github.com)......
  • JAVA学习笔记随记3(面向对象高级)
    类变量类变量的内存布局目前对于类变量的内存布局不能一概而论。对于jdk8及其之前的版本,类变量放在方法区的静态域中。对于之后版本的jdk而言,类变量放在堆区。但实例化出的对象,类变量都是通过引用的。无论如何有以下两个公示:1.静态对象被所有对象共享。2.static类变量,在......
  • 第五节:面向对象
    三个特征:封装,继承,多态。开发:找对象,没有对象就创建对象,使用对象,维护对象。类:对现实生活中事物的描述对象:实实在在存在的个体。对象就是在堆内存中用new建立的实体,实体就是用来存储多个数据的,对象有很多个实体,比如年龄,性别,姓名等。凡是用来存储多个数据的我们都叫做实体。定义......
  • 入门8-Pytest.mark装饰器设置用例分组执行
    与全局配置pytest.ini配置文件结合使用(见配置文件章节)例如 配置文件中设置markers=#分成三类High/Normal,Low  High:smoketest  Normal:producttest  Low:fulltestcases分模块执行:-         Case中加装饰器@pytest.mark.High-     ......
  • 编程打卡:面向对象程序设计测试
    面向对象程序设计测试#include<iostream>#include<iomanip>usingnamespacestd;classPoint{protected:doublex,y;public:Point(doublea=0,doubleb=0):x(a),y(b){cout<<"Pointconstructorcalled\n";......
  • C#设计模式07——装饰器模式的写法
    装饰器模式是一种结构型设计模式,可以在不修改原始对象的基础上添加新的功能和行为。该模式通过将对象包装在具有相同接口的装饰器类中来实现此目的。以下是5W1H分析:What(什么)?装饰器模式是一种结构型设计模式,它允许在运行时动态地向对象添加新的功能和行为,而无需修改原始对象的代......