【问题标题】:Assign an additional class to a variable in python (equivalence in R shown)为python中的变量分配一个附加类(显示R中的等价物)
【发布时间】:2018-04-29 05:10:42
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你可以这样做like,比如子类int。你到底想达到什么目标?
  • Python 类的行为不像 S3 类。他们更像R5 classes

标签: python r python-3.x class oop


【解决方案1】:

是的,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
>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-14
    • 2018-07-18
    • 2016-06-14
    • 2016-05-23
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2020-04-17
    相关资源
    最近更新 更多