Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- class Bucket(object):
- """
- 一个桶,实验的组成部分,比如说 对照桶,实验桶
- """
- def __init__(self, is_duizhao, dataset, bucket_num):
- """
- 初始化一个实验桶
- :param is_duizhao: 该桶是否是对照桶
- :param dataset: 该桶的数据
- :param bucket_num: 该桶的编号
- """
- self.is_duizhao = is_duizhao
- self.dataset = dataset
- self.bucket_num = bucket_num
- def describe(self):
- """
- 这个桶可以做些事情
- :return:
- """
- print("I am no. {0}, I am{1}duizhao bucket".format(self.bucket_num, (" " if self.is_duizhao else " not ")))
- class Experiment(object):
- """
- 一次实验,包含多个实验桶
- """
- def __init__(self, experiment_num, *buckets):
- """
- 一个实验,包含实验编号,以及若干个实验桶
- :param experiment_num: 该实验的实验编号
- :param buckets: 该实验的实验桶 list
- """
- self.experiment_num = experiment_num
- self.duizhao_bucket = None
- self.experiment_buckets = list()
- for bucket in buckets: # 遍历所有的bucket,将对照组取出
- if bucket.is_duizhao:
- self.duizhao_bucket = bucket
- else:
- self.experiment_buckets.append(bucket)
- if self.duizhao_bucket is None: # 如果没有找到对照组,抛出错误
- raise ValueError("buckets contains no duizhao bucket")
- self.experiment_buckets_length = len(self.experiment_buckets)
- if self.experiment_buckets_length < 1: # 如果没有找到实验组,抛出错误
- raise ValueError("buckets contains 1 or more experiment buckets")
- def describe(self):
- print("I have 1 duizhao bucket and {0} experiment buckets".format(self.experiment_buckets_length))
- def do_something(self):
- """
- 这里面可以循环的拿出来,将实验桶与对照桶比较
- :return:
- """
- for bucket in self.experiment_buckets:
- print("I am bucket no.{}, and my bucket number minus duizhao bucket number is {}"
- .format(bucket.bucket_num, bucket.bucket_num - self.duizhao_bucket.bucket_num))
- if __name__ == "__main__":
- bucket1 = Bucket(True, None, 0)
- bucket2 = Bucket(False, None, 1)
- bucket3 = Bucket(False, None, 2)
- experiment = Experiment(0, bucket1, bucket2, bucket3)
- experiment.do_something()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement