Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否获取父类名称?

是否获取父类名称?
EN

Stack Overflow用户
提问于 2012-04-10 15:44:24
回答 3查看 75.5K关注 0票数 61
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class A(object):
    def get_class(self):
        return self.__class__

class B(A):
    def __init__(self):
        A.__init__(self)

b = B()
print b.get_class()

此代码将打印<class '__main__.B'>

如何获取定义了方法的类名(即A)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-10 15:57:48

来自文档:https://docs.python.org/2/reference/datamodel.html#the-standard-type-hierarchy

类对象有一个__name__属性。通过派生类的__bases__属性来内省基类可能更干净(例如,如果代码位于派生类中)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> class Base(object):
...     pass
...
>>> class Derived(Base):
...     def print_base(self):
...         for base in self.__class__.__bases__:
...             print base.__name__
...
>>> foo = Derived()
>>> foo.print_base()
Base
票数 85
EN

Stack Overflow用户

发布于 2012-04-10 16:17:25

inspect.getmro(cls)

按方法解析顺序返回cls类的基类的元组,包括cls。任何类都不会在此元组中出现多次。请注意,方法解析顺序取决于cls的类型。除非使用了非常特殊的用户定义元类型,否则cls将是元组的第一个元素。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import inspect
inspect.getmro(B)

结果将是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(<class '__main__.B'>, <class '__main__.A'>, <type 'object'>)

第一个元素是类本身,第二个元素总是父类的第一个。在那之后,事情可能会变得更复杂。

票数 60
EN

Stack Overflow用户

发布于 2012-04-10 15:53:13

你可以改变

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
return self.__class__

return A().__class__

由于没有A()的其他实例可用...

票数 -6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10091957

复制
相关文章
获取实体类@注解信息_jquery获取class名称
实体类打上@JsonSerialize注解 有一些表的主键是雪花生成的比较长,返回前端会出现精度损失,转成字符串返回就可以了 @JsonSerialize(using = ToStringSerializer.class)
全栈程序员站长
2022/11/16
2.2K0
判断一个类是否另一个类的父类
我们调用Class中isAssignableFrom函数来判断左边的类是否参数中这个类的超类(父类)
阿超
2022/08/16
6300
判断一个类是否另一个类的父类
重写父类方法和调用父类方法
class Animal(object): def eat(self): print("-----吃-----") def drink(self): print("-----喝-----") class Dog(Animal): def bark(self): print("-----汪汪叫------") print("-----汪汪叫------") print("-----汪汪叫------"
汪凡
2018/05/29
2K0
Python 面向对象-如何查看类的父类,外部如何获取类的名字
B.__base__.__name__ 可以获取到父类的名字。 没有的话就是 object,object 就是一切对象的父类。
小蓝枣
2020/09/23
2.9K0
父类坑
我要让全世界都记住我的温柔。——曼德拉 今天在项目中遇到一个小坑可把我吓坏了,记录一下,以免再犯 首先还原下场景吧,我们写个类 package com.ruben.pojo; import lombok.Data; /** * @ClassName: BaseEntity * @Description: 我还没有写描述 * @Date: 2021/1/21 0021 21:01 * * * @author: <achao1441470436@gmail.com> * @version:
阿超
2022/08/16
5060
父类坑
类模块应用示例:获取单击的命令按钮名称
这个示例来源于ozgrid.com,有兴趣的朋友可以研究。在用户窗体上共有24个命令按钮,如下图1所示。
fanjy
2023/10/04
2990
类模块应用示例:获取单击的命令按钮名称
子类继承父类,父类的初始化
含有自变量的构建器 上述例子有自己默认的构建器;也就是说,它们不含任何自变量。编译器可以很容易地调用它们,因为不存 在具体传递什么自变量的问题。如果类没有默认的自变量,或者想调用含有一个自变量的某个基础类构建 器,必须明确地编写对基础类的调用代码。这是用 super 关键字以及适当的自变量列表实现的,如下所示:
秋白
2019/02/21
1.9K0
Java 反射获取父类实例化对象中的值
想通过反射将父类实例化一个子类,使用如下方案: try { Field[] fields = super.getClass.getDeclaredFields(); for (Field field : fields) { field.setAcessible(true); Method method = super.getClass().getDeclaredMethod("get" + upperHeadChar(field.getName()));
zucchiniy
2019/10/30
5.5K0
【Python】面向对象 - 继承 ② ( 子类重写父类成员 | 子类调用父类重名成员 | 子类中使用 父类类名 调用父类成员 | 子类中使用 super 调用父类成员 )
子类 继承 父类的 成员属性 与 成员方法 后 , 如果对 继承的 父类成员 不满意 , 可以 重写 父类成员 ;
韩曙亮
2023/10/11
7840
【Python】面向对象 - 继承 ② ( 子类重写父类成员 | 子类调用父类重名成员 | 子类中使用 父类类名 调用父类成员 | 子类中使用 super 调用父类成员 )
类索引和父类索引
类索引(this_class)和父类索引(super_class)都是一个u2类型的数据,类索引用于确定这个类的全限定名,父类索引用于确定这个类的父类全限定名。由于java语言不允许多重继承,所以父类索引只有一个。
不会飞的小鸟
2020/06/14
8130
python之类的重写父类方法与调用父类方法
  Python 是一门易于学习、功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 优雅的语法和动态类型以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的理想语言。下面我们来介绍一下python的类的重写父类方法与调用父类方法。
jiankang666
2022/12/05
2.7K0
python之类的重写父类方法与调用父类方法
js/jquery获取父窗口元素
做WEB前端开发的过程中,经常会有这样的需求,用户点击【编辑】按钮,弹出一个对话框,在里边修改相应的值,然后把修改后的值显示在原页面,最后点击保存。用window.parent.document.getElementById().setAttribute("value","")可以很好的解决这个问题。
Jensen_97
2023/07/19
7320
File类详解(获取文件名称、大小、路径、创建等)
java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
共饮一杯无
2022/11/28
1.3K0
根据 PID 获取 K8S Pod名称 - 反之 POD名称 获取 PID
随着 Kubernetes 越来越火爆,运维人员排查问题难度越来越大。比如我们收到监控报警,某台 Kubernetes Node 节点负载高。通过 top 或者 pidstat 命令获取 Pid,问题来了,这个 Pid 对应那个 Kubernetes Pod 呢?
YP小站
2020/07/21
3.4K0
java 父类 new 子类
父类: public class A {   public  void  say(){        System.out.println("Hello   A");   } } 子类: public class B extends  A{ public  void  say(){ System.out.println("Hello   B"); } public void sing(){ System.out.println("sing   hell
用户1220053
2018/02/09
2.5K0
Python获取网卡信息(名称、MAC、
    “人生苦短,我用Python”。Python的高效有一部分是跟它丰富的模块分不开的。Python有很多第三方模块可以帮助我们完成一些事情,减少开发时间。
py3study
2020/01/03
4.7K0
Python获取网卡信息(名称、MAC、
在不是Thread类的子类中,如何获取线程对象的名称呢?
我想要获取main方法所在的线程对象的名称,该怎么办呢?   遇到这种情况,Thread类就提供了一个很好玩的方法:     public static Thread currentThread()
黑泽君
2018/10/11
4.9K0
golang继承——接口父类子类
从面向对象的角度上看,总会有一些使用子类不想做,希望父类去做的事情,在java这样的纯面向对象的语言中,方法就是使用父类和子类,子类通过继承父类的方法,实现子类自己的属性,如果没有某个方法没有经过子类重写,那么这个方法通过子类调用时,就会调用父类的方法。
Java架构师必看
2021/05/14
4.6K0
python 继承2个父类
#!/usr/bin/env python class father(object): def __init__(self,tail,heav): self.tail=tail self.heav=heav class mother(object): def __init__(self,like,eat): self.like=like self.eat=eat #class xiaoming(mother): # pass class xiaoming(father,mother): def
py3study
2020/01/10
1K0
点击加载更多

相似问题

是否有办法在父类中获取子类的名称?

33

通过父类名称获取属性值

20

使用反射获取父类的名称

80

在Python中获取父类的名称

24

如何使用getClass().getSuperclass()获取父类名称?

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文