1

attrs用来创建A具有属性的类,surprise然后每次访问它时都应该返回一个不同的随机值(可能从可能的值列表中选择)。

@attr.s
class A(object):
   surprise = attr.ib(type=str)

我们如何添加一个钩子来访问surprise类的属性?这个钩子可以让我们在每次访问surprise属性时生成一个新的字符串值。

谢谢!

期望:

a = A()
print a.surprise   # foo
print a.surprise   # bar
print a.surprise   # another_random_str
4

1 回答 1

1

这应该这样做:

from random import randint
class A:
    my_vars = ["str1", "str2", 1, 2, "whatever"]
    @property
    def surprise(self):
        return self.my_vars[randint(0, len(self.my_vars)-1)]
于 2021-03-09T19:29:34.630 回答