zoukankan      html  css  js  c++  java
  • 类和对象

    类和对象

    对象是特征(属性)与技能(函数)的结合体,类是一系列对象共有特征与技能的结合体。

    如何定义类

    class 类名():
    类名要遵循驼峰体命名法。

    定义类发生的事情

    • 产生名称空间
    • 把类内部所有名字,放到名称空间中
      注: 类在定义阶段,会执行类内部的代码

    类的属性获取和使用

    增(Class.new_attr = ),删 (del Class.attr),改(Class.attr = ),查(Class.attr)

    • 数据属性
      Class.attr 直接获取
    • 函数属性
      Class.func(obj) # 使用时要传入对象

    对象

    如何产生对象:
    用类名+(), 调用类产生对象

    __init__ 方法,会在调用类时自动触发该函数, 会把对象本身以及括号内的参数一并传给__init__方法

    调用类的过程又叫类的实例化,产生的对象是类的一个实例

    对象属性的查找顺序

    1. 优先查找对象自己的属性
    2. 没有去类里面找,类若没有,则去类的父类里向上查找,直至找到,最后还是没有找到则报错

    MetaClass

    元类是实例化可以产生类的类。

    元类的作用:控制类的产生过程

    如何使用元类,继承type定义元类。产生对象时,指定metaclass等于元类

    class MyMeta(type):
        def __init__(self, class_name, base_class, class_dic):
            print("Meta init")
            self.common = 1123
            type.__init__(self, class_name, base_class, class_dic)
    
    Z = MyMeta("Z", (object,), dict(a=1))
    # the above line like 
    # Class Z(metaclass=MyMeta):
    #	a = 1
    print(Z.a)
    print(Z.common)
    
  • 相关阅读:
    知识积累
    来西安对吗
    python循环语句---------while、for
    postman接口功能测试
    Laravel环境搭建
    Vue
    搭建Vue.js环境
    Atom
    PHP
    thinkphp-无限分类下根据任意部门获取顶级部门ID
  • 原文地址:https://www.cnblogs.com/YajunRan/p/11643330.html
Copyright © 2011-2022 走看看