富富猪猪 发表于 2020-11-19 20:31:24

“类”中方法不理解

问题:不能理解为什么类的意义,不能理解以下这段代码的意义,类和普通的函数又有什么区别呢?(如果不定义CLASS)
class Fib(object):
    def __getitem__(self, n):
      if isinstance(n, int): # n是索引
            a, b = 1, 1
            for x in range(n):
                a, b = b, a + b
            return a
      if isinstance(n, slice): # n是切片
            start = n.start
            stop = n.stop
            if start is None:
                start = 0
            a, b = 1, 1
            L = []
            for x in range(stop):
                if x >= start:
                  L.append(a)
                a, b = b, a + b
            return L

狗宁 发表于 2020-11-19 20:46:53

举个例子,你需要生成一个随机数,那你直接调用random这个类就好了。不需要自己再写生成随机数的代码。
简单点来说,类是方便以后你用到这段代码的时候能简便一些。

笨鸟学飞 发表于 2020-11-19 21:02:21

类封装了多个函数,也封装了对象,还可以定义属性,非常之方便。
比如你定义了一个鱼类。你可以给鱼设置属性,比如长度、重量、颜色、性别、年龄,还可以在__init__()方法中初始化属性,还可以定义方法,比如游动、吃、睡。
你调用的时候,如果需要属性,例如长度:fish.len,调用方法:fish.eat()

如果你不想定义类也不是不行,长度、重量、颜色、性别、年龄你就要定义变量,每个动作游动、吃、睡都得写个函数,也可以实现

但是如果你的程序中如果要用多个鱼,用对象是不是会更方便一点?a = Fish() b = Fish(),调用起来不会混淆,更方便使用,a.len,b.len就行了。你用变量的形式也不是不可以,只是会很繁琐。。。所以说用类封装,更优雅、更便捷。。。但是如果你不想用类也不是不可以的

逃兵 发表于 2020-11-19 21:33:05

实际上python的库都是用类来封装的,调用时就import xxx
如果把函数比作工具的话,类就是个工具箱。函数就是类的方法
把相关联的一系列工具都放进一个工具箱中
python就像一个乐高玩具,你组成了胳膊我组成了脚,需要什么就调用什么

kogawananari 发表于 2020-11-19 21:51:55

类和普通的函数区别不大比如说 int()str()set()dict() 也是类 还不是都被拿来当函数用的

类和普通的函数他们都有同样的泛型 typying.Callable ,基本的类实例化的时候可以包装对象 (字面量) 也就是{1,2,}和set()没区别

普通的函数也有类 是函数类实例化出来的

类也有类类的类实例化也能诞生类

生成器类 这种类 并不是有个生成器类的类实例化出来也不是继承生成器基类 而是属于一种泛型只要实现了__iter__就算是生成器类 就是这个道理

富富猪猪 发表于 2020-11-19 22:51:49

逃兵 发表于 2020-11-19 21:33
实际上python的库都是用类来封装的,调用时就import xxx
如果把函数比作工具的话,类就是个工具箱。函数就 ...

thx~
页: [1]
查看完整版本: “类”中方法不理解