“类”中方法不理解
问题:不能理解为什么类的意义,不能理解以下这段代码的意义,类和普通的函数又有什么区别呢?(如果不定义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 举个例子,你需要生成一个随机数,那你直接调用random这个类就好了。不需要自己再写生成随机数的代码。
简单点来说,类是方便以后你用到这段代码的时候能简便一些。
类封装了多个函数,也封装了对象,还可以定义属性,非常之方便。
比如你定义了一个鱼类。你可以给鱼设置属性,比如长度、重量、颜色、性别、年龄,还可以在__init__()方法中初始化属性,还可以定义方法,比如游动、吃、睡。
你调用的时候,如果需要属性,例如长度:fish.len,调用方法:fish.eat()
如果你不想定义类也不是不行,长度、重量、颜色、性别、年龄你就要定义变量,每个动作游动、吃、睡都得写个函数,也可以实现
但是如果你的程序中如果要用多个鱼,用对象是不是会更方便一点?a = Fish() b = Fish(),调用起来不会混淆,更方便使用,a.len,b.len就行了。你用变量的形式也不是不可以,只是会很繁琐。。。所以说用类封装,更优雅、更便捷。。。但是如果你不想用类也不是不可以的 实际上python的库都是用类来封装的,调用时就import xxx
如果把函数比作工具的话,类就是个工具箱。函数就是类的方法
把相关联的一系列工具都放进一个工具箱中
python就像一个乐高玩具,你组成了胳膊我组成了脚,需要什么就调用什么 类和普通的函数区别不大比如说 int()str()set()dict() 也是类 还不是都被拿来当函数用的
类和普通的函数他们都有同样的泛型 typying.Callable ,基本的类实例化的时候可以包装对象 (字面量) 也就是{1,2,}和set()没区别
普通的函数也有类 是函数类实例化出来的
类也有类类的类实例化也能诞生类
生成器类 这种类 并不是有个生成器类的类实例化出来也不是继承生成器基类 而是属于一种泛型只要实现了__iter__就算是生成器类 就是这个道理
逃兵 发表于 2020-11-19 21:33
实际上python的库都是用类来封装的,调用时就import xxx
如果把函数比作工具的话,类就是个工具箱。函数就 ...
thx~
页:
[1]