如何在此类中的方法中获取类名

时间:2018-02-02 09:00:04

标签: qore

是否有任何方法可以在同一个类的方法中获取类名?或者一般来说,如果我有一个类的实例,我需要知道哪个类是它的实例?

2 个答案:

答案 0 :(得分:3)

在Qore中(根据问题上的标签),您需要在对象上使用<object>::className()伪方法。

例如:

prompt% qore -nX '(new Mutex()).className()'
"Mutex"


如果您在课堂上,请在自动self变量上使用此伪方法:

prompt% qore -ne '
class T {
    string getClassName() {
        return self.className();
    }
}
class U inherits T {}
printf("%s\n", (new U()).getClassName());
'
U


或者,您也可以使用get_class_name()函数,如以下示例所示:

prompt% qore -nX 'get_class_name(new Mutex())'
"Mutex"


请注意,如果一个类定义了一个与伪方法同名的方法,那么将调用类方法,并且不能调用伪方法,在这种情况下你必须使用上面提到的函数。

答案 1 :(得分:0)

请参阅http://php.net/manual/pl/function.get-class.php

File "C:/Users/DELL/Pranavan/PyCharm Projects/QE/SIFT_implementation.py", line 1, in <module>
    import cv2
  File "C:\Users\DELL\AppData\Roaming\Python\Python36\site-packages\cv2\__init__.py", line 9, in <module>
    from .cv2 import *
ModuleNotFoundError: No module named 'cv2.cv2'