我对编程有点新意,并且真的不知道如何搜索这个特定问题的答案,所以我想我会分享一个例子来说明我的观点。我目前正在编写一个脚本,将我的类(名为申请人)的实例添加到其他地方的mongo数据库中。我的问题是,在我的许多方法中,我需要从函数返回类的名称,以便返回的值可以用作另一个调用中的参数。这是一个例子
modelName = get_class().getModelName()
在上面的代码中,我试图检索有问题的特定数据模型的名称。我的想法是编写两个方法,一个用于返回可以找到模型名称的类的名称,另一个用于返回实际的模型名称。这是在一个抽象类中完成的,这样我的子类的功能可以被推广(否则我只是直接放入模型名称和类名)。我不确定的是如何编写一个方法,该方法将以与上述用法兼容的格式返回类的名称。因此,例如,如果我在一个名为Rushee的类中编写该方法,那么它应该能够返回一个' rushee'以rushee.getModelName()的方式工作。
任何想法都会非常有用。谢谢!
答案 0 :(得分:1)
要获取课程的名称,您可以使用此代码
class SomeClass():
def getName(self):
return self.__class__.__name__
答案 1 :(得分:1)
IIUC,您可以使用对象的__class__
属性来获取它是其实例的类的名称。
In [60]: class Foo():
...: pass
...:
...:
In [61]: x.__class__
Out[61]: __main__.Foo
这将返回完全限定名称(包括对象所属的命名空间),因此要仅获取最后一部分,您需要x.__class__.__name__
。
答案 2 :(得分:0)
这是一种方法
class Grid:
pass
g = Grid()
type(g).__name__
这与COLDSPEED之前发布的内容类似:
g.__class__.__name__
答案 3 :(得分:0)
在类层次结构中:
class A():
def get_class_name(self):
return self.__class__.__name__
class B(A):
pass
b = B()
print(b.get_class_name())
<强>输出:强>
B
答案 4 :(得分:0)
class Rushee:
def get_model_name(self):
return "return something"
class Other:
def __init__(self):
self.rushee = Rushee()
def class_name(self):
return self.rushee.__class__.__name__
if __name__ == "__main__":
other = Other()
other.class_name()