python练习---面向对象作业练习一+随机整数生成+模拟购物车+温度转换+车辆管理系统

面向对象练习题

1、随机整数生成类

可以先设定一批生成数字的个数,可设定指定生成的数值的范围。运行时还可以调整每批生成数字的个数

import random
class RandomMy:  # 生成多个实例,每次调用返回一个结果
    def __init__(self,start=1,end=100,count =10):
        self.start =start
        self.end   = end
        self.count = 10
    def generate(self):
        return [random.randint(self.start,self.end) for i in range(self.count)]
print(RandomMy().generate())  # 打印
[41, 38, 28, 31, 46, 85, 46, 54, 8, 48]

将生成数据作为一个工具使用,用户直接使用RandomGen.generate()调用即可

import random
class RandomGen:  # 当成工具用,这样就会直接把类当做第一参数进行调用
    @classmethod
    def generate(cls,start =1,end =100,count = 10):
        return [random.randint(start, end) for i in range(count)]
rand =  RandomGen()
print(RandomGen.generate())
print(rand.generate())

上面的类只是满足了生成10 个数字,但是能不能使用一次返回一个数值,或者一次先生成10个数字,并且只创建一个实例呢?

import random
class RandomMy:  # 生成多个实例,每次调用返回一个结果
    def __init__(self,start=1,end=100,count =10):
        self.start =start
        self.end   = end
        self._count = 10
        self._gen = self._generate() # 在初始化过程中将函数注入到属性字典中  # 10:45
    @property   # 增加外部读取和设置 
    def count(self):
        return self._count
    @count.setter # 外部设定参数
    def count(self,count):
        self._count= count
    def _generate(self):
        while True:
            yield random.randint(self.star
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值