首页 > 解决方案 > Python:嵌套类与继承

问题描述

我正在尝试利用 Python 类来定义和组织将进行 Rest API 调用的函数。这些功能与某些扩展相互关联,因此我尝试使用类来组织它们。我想到的结构如下:

Main_Class
(holds the common variables and funcs. like say clean_dict())
|
|-- Sub_Class1 
|   (Modifies the URL to access some Service 1)
|       |-- Func1 (makes the actual API call and returns result)
|       |-- Func2
|-- Sub_Class2
|   (Modifies the URL to access some Service 2)
|       |-- Func1 (same name, but unrelated to above Func1)
|       |-- Func3

目前我把它写成嵌套类。在__init__Main 类中,我也初始化了子类对象并将一些变量传递给它。这允许我调用子类中的函数,如下所示。这是我想做的事情,因为它对我来说看起来更干净,并为以后阅读代码的人提供了一切来自哪里的想法:

main = main_class(common_args)
var1 = main.subClass1.Func1(specific_args_for_this_func)
var2 = main.subClass2.Func1(specific_args_for_this_func)
var3 = main.subClass1.Func3(specific_args_for_this_func)

问题是,我想在子类函数中使用clean_dict()Main 类中定义的公共函数。使用嵌套类,我知道这是不可能的。

那么,最好的方法是什么

  1. 我可以保持我如何用点表示法调用函数的结构和
  2. 虽然能够访问主/父类中定义的一些常用函数?

据我了解,如果我改为进行类继承,则必须分别初始化每个子类,代码如下所示:

subClass1 = Sub_Class1(common_args)
subClass2 = Sub_Class2(common_args)
var1 = subClass1.Func1(specific_args_for_this_func)
var2 = subClass2.Func1(specific_args_for_this_func)
var3 = subClass1.Func3(specific_args_for_this_func)

我想不用说我只是一个中级程序员,希望对此的回答不会太复杂。

标签: pythonpython-3.xpython-2.7oop

解决方案


推荐阅读