欢迎访问宙启技术站
智能推送

Python实现的NamedTypes()随机生成器

发布时间:2023-12-12 18:24:58

NamedTypes()是Python中的一个随机生成器,它可以生成指定数量的随机字符串,数字和其他类型的数据。

下面是NamedTypes()的实现代码:

import random
import string

class NamedTypes:
    def __init__(self, num_names=10, num_numbers=10, num_others=10):
        self.num_names = num_names
        self.num_numbers = num_numbers
        self.num_others = num_others
        
    def generate_names(self):
        names = []
        for _ in range(self.num_names):
            name_length = random.randint(5, 10)
            name = random.choices(string.ascii_letters, k=name_length)
            name = "".join(name)
            names.append(name)
        return names
    
    def generate_numbers(self):
        numbers = []
        for _ in range(self.num_numbers):
            number = random.randint(1, 100)
            numbers.append(number)
        return numbers
    
    def generate_others(self):
        others = []
        for _ in range(self.num_others):
            choice = random.choice([True, False])
            others.append(choice)
        return others
    
    def generate_all(self):
        names = self.generate_names()
        numbers = self.generate_numbers()
        others = self.generate_others()
        return names + numbers + others

在上面的代码中,初始化时可以选择要生成的名称数量,数字数量和其他类型数量,并提供了默认值。

generate_names()函数用于生成随机的名称。它使用random.choices()函数从ascii_letters中随机选择字符,然后将它们连接在一起形成一个随机名称。

generate_numbers()函数用于生成随机的数字。它使用random.randint()函数生成一个介于1和100之间的随机整数。

generate_others()函数用于生成其他类型的数据。它使用random.choice()函数从一个包含True和False的列表中选择一个随机项。

generate_all()函数用于生成所有类型的数据。它先调用generate_names()、generate_numbers()和generate_others()函数,然后将它们的结果合并在一起。

使用例子:

nt = NamedTypes(num_names=5, num_numbers=5, num_others=5)
data = nt.generate_all()
print(data)

在上面的例子中,我们创建了一个NamedTypes对象,并指定要生成5个名称,5个数字和5个其他类型数据。然后调用generate_all()函数来生成数据,并将生成的数据打印出来。

输出结果可能如下所示:

['bNvdVm', 'zklto', 'aUvhs', 'TVGEU', 'ZBXue', 52, 39, 16, 75, 61, False, True, False, False, True]

上面的输出结果包含5个随机名称,5个随机数字和5个随机的True或False的值。

通过使用NamedTypes()生成器,我们可以方便地生成各种类型的随机数据,这对于测试和模拟数据非常有用。