python - 继承Python中同名的类

标签 python class

我是 Python 新手,我试图在两个不同的源文件中创建两个同名的类。我们称它们为“Main.py”和“Extension.py”。类(class)是“我的类(class)”。 Extesntion.py 中的 MyClass 派生自文件 Main.py 中的 MyClass。如果它有效,那么当我创建一个对象 myclass 并在我的代码中导入 Extension 时,与文件 Main.py 相比,我将拥有更多的功能。
文件主.py

    class MyClass:
       def __init__(self):
         Initialize something

       def foo1(self, a, b):
         Do something
然后扩展将是这样的:
文件扩展名.py
    import Main

    class MyClass(MyClass):
       def __init__(self):
         Initialize something

       def foo2(self, a, b):
         Do something

       def foo3(self, a, b):
         Do something
然后如果我有这样的代码。我希望我不能使用 foo2 和 foo3。
    import Main

    myclass = MyClass()
    myclass.foo1(a, b)
最后,如果我有这样的代码。我希望我使用所有功能。
    import Extension

    myclass = MyClass()
    myclass.foo1(a, b)
    myclass.foo2(a, b)
    myclass.foo3(a, b)

最佳答案

如果你这样做

import main

您需要使用 main.MyClass从 main.py 创建一个对象。

相反,你可以做
from main import MyClass

让它直接可用。

如果您需要两个具有相同名称的不同类,则可以改为
from main import MyClass as MainClass

并且您将在名称 MainClass 下使用该类

关于python - 继承Python中同名的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43258116/

相关文章:

python - 在 Python 中,如何对四个随机数进行约束,使两个负数和两个正数等于 0?

actionscript-3 - 类在主 SWF 和运行时从另一个域加载的 SWF 之间不匹配

java - 将对象类更改为java中的子类

c++ - 在 C++ 中将列表作为返回类型传递?

c++ - 如何使类根本不可推导。有什么办法吗?

java - 从 Java 到 C++ : how to use one custom class var within another custom class?

python - Bokeh - 当 output_backend = "webgl"时,绘图在 x 轴上重叠

python - assertListEqual 否定(相反)

python - 为什么在虚拟环境中调试 Python C 扩展时 Xcode 5 会崩溃?

java - 找不到 jpype+pdfbox 类