Python的类与静态函数

python中的类

Python语言里没有直接的ADT(Abstract Data Type)定义,实现ADT可以采用很多不同的技术。最自然的一种技术是利用class定义实现抽象数据类型。实际上,python语言把内置类型都看作类。在建立这种抽象时,人们不希望暴露其实现的内部细节。由于隐藏抽象的内部信息在软件领域中意义重大,有些编程语言为此提供了专门机制。python没有专门服务于这种需求的机制,只能依靠一些编程约定 。

首先,人们约定在一个类的定义里面,由下划线开头的属性名都当做内部使用的名字,不应该在这个类之外使用。另外,python对类定义里以两个下划线_开头(但不以两个下划线结尾)名字做了特殊处理,使得在类定义之外不能直接使用这个名字访问。例如定义有理数类:

class Rational:
    @staticmethod
    def _gcd(m, n):
        if n == 0:
            m, n = n, m
        while m != 0:
            m, n = n % m, m
        return m

    def __int__(self,  num, den = 1):
        if not isinstance(num, int) or not isinstance(den, int):
            raise TypeError
        if den == 0:
            raise ZeroDivisionError
        sign = 1
        if num < 0:
            num,
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值