• 属性


    在编程的过程中经常会使用x.y的表达式,我把任何跟在点号之后的名称都称为属性。所以表达式x.y中,yx的一个属性。

    类有属性,对象也有属性。

    类属性

    类属性的定义

    直接在类中定义的变量(与class语句只有一个缩进),就是类属性。

    案例:

    Point类创建一个name属性用来表示点类的名称。

    class Point:
        """
        表示平面坐标系中的一个点
        """
        name = '点'
    

    类属性的访问

    类属性直接通过类和对象以句点法访问,语法格式如下:

    类.类属性名
    对象.类属性名
    

    案例:

    # 接上面的代码
    >>> print(Point.name)  # 直接通过类名访问类属性
    点
    >>> point=Point()  # 创建一个实例
    >>> print(point.name)     # 通过对象访问类属性
    点
    

    注意:如果不存在的属性则会抛出异常

    >>> print(Point.a)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    AttributeError: type object 'Point' has no attribute 'a'
    

    对象属性

    对象属性的定义

    对象属性一般定义在构造方法中,详见下面构造方法一节中。

    也可以通过句点法对象.对象属性以赋值的方式直接定义对象属性。

    案例:

    平面坐标系中的每个点都有x坐标和y坐标,通过类Point创建一个对象表示点(x=1,y=2)

    >>> point = Point()
    # 通过赋值直接定义对象属性
    >>> point.x = 1
    >>> point.y = 2
    

    对象属性的访问

    通过句点法对象.对象属性可以访问对象属性。

    案例:

    访问上面案例中point的x坐标和y坐标

    >>> print(point.x)
    1
    >>> print(point.y)
    2
    

    访问对象属性时,首先会检查对象是否拥有此属性,如果没有则去创建对象的类中查找有没有同名的类属性,如果有则返回,如果都找不到则抛出AttributeError的异常

  • 相关阅读:
    02-自定义CALayer
    01-CALayer的基本操作
    抽屉效果
    手势识别
    事件响应
    寻找最合适的view
    hitTest方法与PointInside方法
    02-事件的产生与传递
    OC图标+启动图
    OC多线程操作
  • 原文地址:https://www.cnblogs.com/superwuchaofan/p/16635734.html
Copyright © 2020-2023  润新知