【问题标题】:Nested Classes in Python 3Python 3 中的嵌套类
【发布时间】:2017-09-21 20:10:27
【问题描述】:

我正在尝试创建一个嵌套类来执行每个子类中传递的参数的求和或乘法。 下面的示例帮助我在类中执行操作,但是我找不到任何可以帮助我将属性从父类继承给子类的文档。

最近我看到一篇文章强调“nested classes can't access any members of their external classes at compile-time.”。有没有更好的方法在类之间传递值?我尝试使用全局变量,但希望在扩展此逻辑以提取整个数据中心的库存、执行一些计算并再次传递给另一个类时避免设置许多全局变量。

class Class1:
    firstnumber=0
    def __init__(self,arg):
        self.firstnumber=arg

    class Class2:
        def __init__(self,arg):
            self.secondnumber=arg

        def sumit(self):
            return Class1.firstnumber+Class1.Class2.secondnumber


print(Class1(5).firstnumber)
print(Class1(6).Class2(4).secondnumber)

print(Class1(4).Class2(10).sumit())

我想用 Class1(variable1).Class2(variable2).Class3(variable3).sum() 或 Class1(variable1).Class2(variable2).Class3(variable3).multiple() 并最终能够做到以下几点

Datacenter('DC1').GetServer('ServerName').GetStorageCapacity('NFS').Used() Datacenter('DC1').GetServer('ServerName').GetStorageCapacity('NFS').Free()

http://momentaryfascinations.com/programming/bound.inner.classes.for.python.html

【问题讨论】:

  • 看来您的理解有误。您引用的文档是正确的。您尝试解决的问题实际上并不需要嵌套类。
  • 感谢您的建设性反馈。

标签: python-3.x class nested


【解决方案1】:

我可能是错的,但据我了解,您在 class() 和 init 语句之间添加的任何内容都是永久且不可更改的。您不需要为每个数字创建单独的类。创建同一类的不同实例。

class numbers:
    def __init__(self,arg):
        self.arg = arg

c1 = 数字(3) c2 = 数字(5)

我不知道如何将 arg 变量添加在一起,也许其他人可以填写我缺少的内容。

【讨论】:

  • 我选择了数字示例以使其通用。我们在全球不同城市设有数据中心。我想从这些数据中心使用的不同工具中检索数据。如果有人帮助我使用嵌套类,它可以帮助我使用以下 Datacenter('DC1').GetServer('ServerName').GetStorageCapacity('NFS').Used 查询和检索这些服务器的服务器、存储和其他详细信息()
猜你喜欢
  • 2015-09-06
  • 2012-02-05
  • 2012-12-23
  • 2018-04-28
  • 1970-01-01
  • 1970-01-01
  • 2011-09-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多