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

使用Python编写的带有随机生成函数的NamedTypes()预览

发布时间:2023-12-12 18:27:15

下面是使用Python编写带有随机生成函数的NamedTypes()的预览:

import random

class NamedTypes:
    def __init__(self, types):
        self.types = types

    def generate(self, num_values):
        result = []
        for _ in range(num_values):
            value = {}
            for key, value_type in self.types.items():
                if value_type == int:
                    value[key] = random.randint(0, 100)
                elif value_type == float:
                    value[key] = random.uniform(0, 1)
                elif value_type == str:
                    value[key] = ''.join(random.choices('abcdefghijklmnopqrstuvwxyz', k=10))
                elif value_type == bool:
                    value[key] = random.choice([True, False])
                else:
                    raise ValueError(f"Unsupported data type: {value_type}")
            result.append(value)
        return result

# Example usage
types = {
    'name': str,
    'age': int,
    'height': float,
    'is_student': bool
}

nt = NamedTypes(types)
values = nt.generate(10)

for value in values:
    print(value)

在上面的代码中,我们定义了一个NamedTypes类,接受一个包含键值对的字典作为参数,其中键表示属性的名称,值表示属性的类型。

generate函数接受一个参数num_values,用于指定要生成的值的数量。函数会生成num_values个随机值,并将每个值存储在一个字典中,字典的键对应属性名称,而值则是随机生成的对应类型的值。随机值的生成规则如下:

- 对于int类型,生成一个0到100之间的随机整数。

- 对于float类型,生成一个0到1之间的随机浮点数。

- 对于str类型,生成一个由10个小写字母组成的随机字符串。

- 对于bool类型,随机选择一个布尔值(True或False)。

在上述例子中,我们创建了一个NamedTypes实例,并指定属性名称与类型的字典。然后,我们调用generate函数,生成了10个随机的属性值,并将这些值打印出来。

这只是NamedTypes类的一个简单示例,你可以根据需要扩展该类和generate函数,以满足特定的需求。