Python 在类外声明内部类
我想在我的代码中使用内部类,但我在规划它应该是什么样子时遇到了问题,甚至可能它的使用不好,所以您可以帮助我找到其他方法来编写它。 我希望这个内部类是在一些if结构中创建的,具体取决于输入中提供的字符串。如果我能在它的父类之外编写这个内部类的代码,那就太好了,因为它将来可能会很大,而且应该很容易扩展 我想知道是否应该像Case1(Case1)那样使用继承,但我不确定这一点Python 在类外声明内部类,python,inner-classes,Python,Inner Classes,我想在我的代码中使用内部类,但我在规划它应该是什么样子时遇到了问题,甚至可能它的使用不好,所以您可以帮助我找到其他方法来编写它。 我希望这个内部类是在一些if结构中创建的,具体取决于输入中提供的字符串。如果我能在它的父类之外编写这个内部类的代码,那就太好了,因为它将来可能会很大,而且应该很容易扩展 我想知道是否应该像Case1(Case1)那样使用继承,但我不确定这一点 class Example: def declare_specific_case(self): if
class Example:
def declare_specific_case(self):
if "case1" in foo:
class Case1:
pass
elif "case2" in foo:
class Case2:
pass
class Case1:
<some code which can be used in inner class>
类示例:
def声明特定情况(自身):
如果foo中的“case1”:
类别个案1:
通过
foo中的elif“案例2”:
类别2:
通过
类别个案1:
因此,我希望我可以在类之外甚至在其他模块中声明代码。您可以这样做:
class Class1: pass
class Class2: pass
class Wrapper:
def __init__(self, x):
if x:
self._inner = Class1
else:
self._inner = Class2
甚至您也可以添加一个方便的方法,如:
class Wrapper:
# ...
def get_inner_class_instance(self, *args, **kwargs):
return self._inner(*args, **kwargs)
另一方面,您可能希望了解如何使用python实现工厂模式。看看这篇文章:您可以这样做:
class Class1: pass
class Class2: pass
class Wrapper:
def __init__(self, x):
if x:
self._inner = Class1
else:
self._inner = Class2
甚至您也可以添加一个方便的方法,如:
class Wrapper:
# ...
def get_inner_class_instance(self, *args, **kwargs):
return self._inner(*args, **kwargs)
另一方面,您可能希望了解如何使用python实现工厂模式。看看这篇文章:在你提到工厂模式之后,我深入研究了设计模式,我在youtube上找到了非常不错的系列。我很惊讶它的视野如此之小。我相信这将是我程序员道路上的一大步。在你提到工厂模式之后,我深入研究了设计模式,在youtube上找到了非常好的系列。我很惊讶它的视野如此之小。我相信这将是我程序员道路上的一大步。