首页 > 解决方案 > 为python中的变量分配一个附加类(显示R中的等价物)

问题描述

R中,您可以执行以下操作:

x <- 3
cl <- class(x)
class(x) <- c("abc",cl)

所以变量'x'将是一个整数并且属于用户定义的类'abc'。

我想在Python中做类似的事情。我的变量“x”应该被视为整数,并且还应该具有名为“abc”的用户定义类的属性。

标签: pythonrpython-3.xclassoop

解决方案


是的,Python 支持多重继承:

class indigestion():
    def burp(self):
        return " ".join("burp" for _ in range(int(self)))


class int_with_indigestion(int, indigestion):
    pass

class float_with_indigestion(float, indigestion):
    pass

n = int_with_indigestion(13)

print(n ** 2)
print(n.burp())

f = float_with_indigestion(5.3)

print(f ** 2)
print(f.burp())

用法

> python3 test.py
169
burp burp burp burp burp burp burp burp burp burp burp burp burp
28.09
burp burp burp burp burp
>

推荐阅读