【问题标题】:Connect two classes, and assign a value to object连接两个类,并为对象赋值
【发布时间】:2018-06-09 13:05:37
【问题描述】:

我有 2 节课。第一个保留的用户年龄和第二个保留的用户名。有没有可能让它们工作?

class Uinfo:

    ThisAge = 0


class UUser:

    info = Uinfo()

    name = None


newUser = UUser()
newUser.name = "john"
newUser.info[0].ThisAge = 23

【问题讨论】:

  • 我不知道您要做什么,也不知道为什么您认为需要一个单独的对象来存储用户的年龄。无论如何,这是行不通的,因为您要为整个 UUser 类实例化一次 Uinfo,因此所有用户对象将共享相同的年龄。您可能想进一步了解 Python 中面向对象的工作原理,并查看更多代码示例。
  • 这不是类的使用方式。除其他外,您使用的是类属性而不是实例属性。
  • “让他们工作”是什么意思?他们应该怎么做?

标签: python class


【解决方案1】:

好的,在 Python 中为类的实例赋值。简单的。我的最后一个答案是完全错误的。 :)

class Uinfo:

    ThisAge = 0


class UUser:
    def __init__(self):
        self.info = Uinfo()
    info = None
    name = None


newUser = UUser()
newUser.name = "john"
newUser.info.ThisAge = 23
newUser2 = UUser()
newUser2.name = "oe"
newUser2.info.ThisAge = 34

print(newUser.name)
print(newUser.info.ThisAge)
print(newUser2.name)
print(newUser2.info.ThisAge)

请注意,UUser 类现在有一个构造函数,该构造函数分配了 Uinfo 类的唯一实例。任务完成。

我想说的是,这个答案回答了 OP 提出的确切问题(它使它起作用......)任何“应该这样做”或“应该这样做”都不是重点.我相信 OP 应该研究如何使用实例引用以及何时使用别名,并且绝对应该阅读 https://docs.python.org/2/tutorial/classes.html 文档,因为我没有,而且我不在乎。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多