Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何返回要用作参数的类的名称_Python_Class_Classname - Fatal编程技术网

Python 如何返回要用作参数的类的名称

Python 如何返回要用作参数的类的名称,python,class,classname,Python,Class,Classname,我对编程有点陌生,不知道如何搜索这个特定问题的答案,所以我想我应该分享一个例子来阐明我的观点。我目前正在编写一个脚本,将我的类的一个实例(命名申请人)添加到其他地方的mongo数据库中。我的问题是,在我的许多方法中,我需要从函数返回类的名称,以便返回的值可以在另一个调用中用作参数。这里有一个例子 modelName = get_class().getModelName() 在上面的代码中,我试图检索有问题的特定数据模型的名称。我的想法是编写两个方法,一个用于返回可以找到模型名的类的名称,另一个

我对编程有点陌生,不知道如何搜索这个特定问题的答案,所以我想我应该分享一个例子来阐明我的观点。我目前正在编写一个脚本,将我的类的一个实例(命名申请人)添加到其他地方的mongo数据库中。我的问题是,在我的许多方法中,我需要从函数返回类的名称,以便返回的值可以在另一个调用中用作参数。这里有一个例子

modelName = get_class().getModelName()
在上面的代码中,我试图检索有问题的特定数据模型的名称。我的想法是编写两个方法,一个用于返回可以找到模型名的类的名称,另一个用于返回实际的模型名。这是在一个抽象类中完成的,这样子类的功能就可以被泛化(否则我就直接输入模型名和类名)。我不确定的是如何编写一个方法,以与上述用法兼容的格式返回类名。例如,如果我在一个名为Rushee的类中编写该方法,那么它应该能够以Rushee.getModelName()可以使用的方式返回一个“Rushee”


任何想法都会非常有用。谢谢大家!

要获取类的名称,可以使用以下代码

class SomeClass():
    def getName(self):
        return self.__class__.__name__

要获取类的名称,可以使用以下代码

class SomeClass():
    def getName(self):
        return self.__class__.__name__

IIUC,您可以使用对象的
\uuuuu class\uuuuu
属性来获取它作为实例的类的名称

In [60]: class Foo():
    ...:     pass
    ...:     
    ...:     

In [61]: x.__class__
Out[61]: __main__.Foo

这将返回完全限定的名称(包括对象所属的名称空间),因此要仅获取最后一部分,您需要执行
x.\uuuuu class.\uuuu name.\uuuu

IIUC,您可以使用对象的
\uuuu class\uuuuu
属性来获取它作为实例的类的名称

In [60]: class Foo():
    ...:     pass
    ...:     
    ...:     

In [61]: x.__class__
Out[61]: __main__.Foo
这将返回完全限定的名称(包括对象所属的名称空间),因此要仅获取最后一部分,您需要执行
x.\uuuuu class.\uuuu name.\uuuu

这里有一种方法

class Grid:
    pass

g = Grid()
type(g).__name__
这与COLDSPEED之前发布的内容类似:

g.__class__.__name__
这里有一个方法

class Grid:
    pass

g = Grid()
type(g).__name__
这与COLDSPEED之前发布的内容类似:

g.__class__.__name__
在类层次结构中:

class A():
    def get_class_name(self):
        return self.__class__.__name__

class B(A):
    pass

b = B()

print(b.get_class_name())
输出:

B
在类层次结构中:

class A():
    def get_class_name(self):
        return self.__class__.__name__

class B(A):
    pass

b = B()

print(b.get_class_name())
输出:

B