函数my_func获取一个参数,可以是整数或类:
class SomeClass:
val = 0
def __init__(self):
self.val = 0
def set(self, val):
self.val = val
def get(self):
return self.val
我想把这两种类型作为一个整体来处理。 我是否可以明确地告诉Python,对SomeClass类型的对象的求值应该返回对象的val字段,而不是它自己的对象。你知道吗
这意味着要(以某种方式)完成以下代码:
s = SomeClass()
s.set(3)
test = s # this line should assign value 3(int) to test
test # prints 3
不是真的,不是,不是你想要的那种广义的。您可以重载许多操作,而不是赋值。这是因为变量只是对对象的引用,没有附加类型。在任何给定的时间,都可以有许多对对象的引用。重要的是你如何使用这个对象,而不是你给它分配了什么。你知道吗
相反,我将使您的类转换为整数。您可以使用^{} hook ;setter将显式调用传入的对象上的
int()
:如果总是在整数运算中使用这些对象,则可以为这些操作添加挂钩,例如^{} 和^{} ;同样,使用对象的上下文才是最重要的。你知道吗
相关问题 更多 >
编程相关推荐