python对象和数据结构

python变量和对象
在python程序里,可以通过初始化(或提供实参)给变量约束一个值,还可以通过赋值修改变量的值.这里的值就是对象.给变量约束一个对象,就是把对象的表示(内存地址)存入该变量.所以从变量出发访问其值得是常量时间操作,这是在python里分析程序的时间代价的基础.
Python变量的值都是对象,可以是基本整数,浮点数等类型的对象,也可以是组合类型的对象,比如list.程序中建立和使用各种复杂对象,包括python函数等,都基于独立的存储快技术实现,通过链接相互关联.程序里的名字(变量,参数,函数名)关联着作为其值得对象,这种关联可以用赋值操作改变.
python语言中变量的这种实现方式成为变量的引用语义**,在变量里保存值(对象)的引用**.采用这种方式,变量所需的存储空间大小一致,因为其中只需要保存一个引用.有些语言采用的不是这种方式,它们把变量的值直接保存在变量额存储区里,称为值语义.这样一个整数类型的变量就需要保存一个整数所需的空间,一个浮点数变量就需要足够的空间存储一个浮点数,如果一个变量中需要保存很大的数据对象,它就需要占据更大的存储空间.例如C语言采用的就是变量的值语义.

抽象数据结构

class Rational:

    # 求最大公约数
    @staticmethod
    def _gcd(m, n):
        if n == 0:
            m, n = n, m
        while n != 0:
            m, n = n, m % n
        return m

    def __init__(self, num, den):
        # 获得最简分数
        if den == 0:
            raise ZeroDivisionError
        if not isinstance(num, int) or not isinstance(den, int):
            raise TypeError
        sign = 1
        if num < 0:
            num, sign = -num, -sign
        if den < 0:
            den, sign = -den, -sign
        g = Rational._gcd(num, den)
        self._num = sign * (num // g)
        self._den = den // g

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值