zoukankan      html  css  js  c++  java
  • Python类和对象_嵌入_多实例返回值

    一,矩形的类,嵌入式

    如果要设计一个表示矩形的类,你要用什么样的属性来确定一个矩形的位置和大小呢? 可以忽略角度,来让情况更简单一些,就只考虑矩形是横向的或者纵向的。

    方案:确定矩形的一个顶点(或者中心)所在位置,还有宽度和高度。

    如下是类的定义:

    >>> class rectangle:

    ...     """Represents a rectangle. Attributes: width, height, corner."""

    ...

    文档字符串中列出了属性:width 和 height 是数值;corner 是一个点对象,用来表示左下角顶点。

    要表示一个矩形,必须初始化一个矩形对象,然后对其属性进行赋值:

    >>> square_box = rectangle()

    >>> square_box.width = 100.0

    >>> square_box.height = 200.0

    >>> square_box.corner = Point()

    >>> square_box.corner.x = 0.0

    >>> square_box.corner.y = 0.0

    表达式 square_box.corner.x 的意思是,【到 square_box 指代的对象中,选择名为 corner 的属性,然后到这个点对象中,选取名为 x 的属性值】

    如下展示了这个对象rectangle()的状态图:

    上例中,类Point做了类rectangle的属性。

    如上这种情况,一个类去作为另外一个类的属性,就叫做嵌入。 

    二,多个实例做返回值

    函数返回实例。比如 find_center 就接收一个 Rectangle (矩阵)对象作为参数,然后以一个 Point(点)对象的形式,返回矩形中心位置的坐标所在点:

    >>> def find_center(rect):

    ...     p = Point()      #这里的Ponit首字母需要大写,因为它是我们之前自定义的类。

    ...     p.x = rect.corner.x + rect.width/2

    ...     p.y = rect.corner.y + rect.height/2

    ...     return p

    ... 

    下例中,box 作为一个参数传递给了 find_center 函数,然后把结果赋值给了点 center:

    >>> center = find_center(square_box)

    >>> print_point(center)

    (50, 100)

    结束。

  • 相关阅读:
    <转>WCF中出现死锁或者超时
    无连接服务器与面向连接的服务器
    Linux系统调用
    vim文本删除方法 Linux
    深入了解C指针
    linux下c语言实现双进程运行
    *p++、(*p)++、*++p、++*p 的区别
    快速了解yuv4:4:4 yuv4:2:2 yuv 4:1:1 yuv 4:2:0四种YUV格式区别
    文件通过svn updata更新不到,并且svn st显示被删除的解决办法
    [非常重要的总结] Linux C相关函数
  • 原文地址:https://www.cnblogs.com/liusingbon/p/13227126.html
Copyright © 2011-2022 走看看