我需要一个可以定义其他类的类。例如,假设您有一个名为“Shapes”的类,通过该类可以创建“Shapes”对象。我想做的是,在“Shapes”中创建其他类,例如,circle或square。每个“子类”都有相同的变量,例如颜色、表面积等。因此,在一天结束时,我想定义一个称为“Tommy”的蓝色圆,其表面积为78.5398163397u^2
在我看来是这样的:
class Shapes():
def __init__(self, myclassname):
class myclassname():
def __init__(self, color, surf_area):
self.color = color
self.surf_area = surf_area
因此,要使用它,您可以:
Circle = Shapes(Circle)
Tommy = Circle(blue, 78.5398163397)
我试过了,没用。你知道吗
任何帮助都将不胜感激。你知道吗
谢谢你。你知道吗
编辑:
有些人似乎很困惑,我不想在程序中硬编码一个圆、正方形或三角形类,我希望能够在运行时定义一个新的形状。你知道吗
编辑2:
我不是要继承。基本上我只想给一个类一个变量名,例如
var = Input('Enter class name')
class var(): # var as in the variable not a class called var
normal class stuff
您必须重写{new}方法,因为{init}不能返回任何值,也可以使用type函数动态构造新类:
或者,可以使用通过键指向类的类继承和映射字典来实现相同的行为,但不需要动态创建类:
你可以这样做:
但我一点也不明白-你的“动态”类根本没有行为,所有的类都有完全相同的属性集,所以你可以只使用一个类,而得到完全相同的行为:
这looks like a XY problem对我来说,你也许应该告诉更多关于你试图用这个来解决的真正问题。你知道吗
你正在寻找一个工厂模式。你知道吗
快速谷歌搜索提供:
给http://python-3-patterns-idioms-test.readthedocs.io/en/latest/Factory.html的学分
相关问题 更多 >
编程相关推荐