【问题标题】:class Derived(Base.User) vs class Derived(User)?派生类(Base.User)与派生类(用户)?
【发布时间】:2018-09-24 14:26:57
【问题描述】:

我有两个文件 main.py 和 user.py。使用class Derived(Base.User) 而不仅仅是class Derived(User) 的原因是什么?我也不明白#Base.User.__init__(self)#的用法。

main.py

import Base
class Derived(Base.User):
    def __init__(self):
       #Base.User.__init__(self)
       return

Base.py

class User:
    def __init__(self):
        return
    def displayName(self):
        print("Name : ",self.name)

【问题讨论】:

  • # 只是 Python 中的注释。它不会被解释
  • main.py和user.py这两个文件是在同一个目录下吗?它们是如何组织的,看起来 user.py 应该在 Base 模块中
  • 如果Base.User 的导入为import Base,而User 的导入为from Base import User,则class Derived(Base.User)class Derived(User) 之间没有区别。但是,如果没有 @c6754 要求的信息,我们真的无法知道。
  • @VineethSai 该死的完全忘记了这一点。
  • @c6754 编辑它,user.py 实际上是 Base.py。是的,它们在同一个文件夹中。

标签: python inheritance syntax


【解决方案1】:

从模块导入共有三个常用选项

导入Base 模块

import Base    

然后以Base.User 访问模块的元素(例如User 类)。

导入个人姓名

您可以使用类似的导入语句从模块中导入单个名称

from Base import User

完成后,您将可以直接访问 User 类,就像您在当前文件中定义它一样。例如你可以调用

class Derived(User):

导入基本模块中的每个名称

您可以将Base 模块中的所有内容导入到当前文件中,而不仅仅是选择名称,例如User 类。这样做

from Base import *

然后Base 中定义的任何类或函数都可以访问,即您可以只使用User 而不是Base.User

这里有更多关于在 Python 中使用和导入模块的信息Modules

【讨论】:

  • 很高兴它有帮助。
猜你喜欢
  • 2012-07-17
  • 1970-01-01
  • 1970-01-01
  • 2021-04-30
  • 2020-05-23
  • 2018-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多