这段代码意思是每次打包苹果数量不能超过1000个,总重量不能大于300,如果第一次打包数量小于1000和重量小于300,
那就再打包一次,直到大于1000和重量大于300就停止,问题在注释里
```python
import random
class Apple:
counter = 0
total_weight = 0
def __init__(self, weight):
self.weight = weight #这里搞不懂,删掉这条代码,完全不影响运行,不知道什么意义
Apple.total_weight += weight
Apple.counter += 1
while Apple.counter < 1000 and Apple.total_weight < 300:
apple = Apple(random.uniform(0.2, 0.5))
#这里我觉得根本不需要建立一个对象,照样能运行出正确结果,直接 Apple(random.uniform(0.2, 0.5))就可以了
print('A limit has been reached. The order details:')
print('# of apples:', Apple.counter)
print('total weight:', round(Apple.total_weight, 2))
```
你定义的 self.weight = weight 实例属性在别的地方都没有使用到 所以删掉这条代码,完全不影响运行,
但是 self.weight 还是要定义,因为以后扩充代码时可能要用到
不需要建立一个实例对象,是因为你代码Apple只使用了类的静态属性,没有使用到实例对象,但是还是应该建立一个实例对象,因为以后扩充代码时可能要用到
init方法是初始化操作,删除第一行并不影响程序运行。
因为你用到的是类属性,没有用到这个self.weight
单独执行Apple()也是可以的,也是创建对象的意思,只是没有把引用赋值给某个对象。
apple = Apple()分为两步:
1、new方法:实例化对象(开辟内存空间)
2、将实例化对象赋值给apple