Python编程:获取一个类对象的属性和方法

简介: Python编程:获取一个类对象的属性和方法

python3.6 下测试

# -*- coding: utf-8 -*-
class Demo(object):
    name = "demo"
    def instance_func(self):
        pass
    @classmethod
    def class_func(cls):
        pass
    @staticmethod
    def static_func():
        pass
def print_attrs_by_dict():
    """打印出属性"""
    print(Demo.__dict__.keys())
    # dict_keys(['__module__', 'name', 'instance_func',
    # 'class_func', 'static_func', '__dict__', '__weakref__',
    # '__doc__'])
def print_attrs_by_dir():
    """ 过滤所有属性 """
    print(dir(Demo))
    # ['__class__', '__delattr__', '__dict__', '__dir__', '__doc__',
    # '__eq__', '__format__', '__ge__', '__getattribute__','__gt__',
    # '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__',
    # '__module__', '__ne__', '__new__','__reduce__', '__reduce_ex__',
    # '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__',
    # '__weakref__', 'class_func', 'instance_func', 'name', 'static_func']
def filter_attrs_by_inspect():
    """ 过滤出函数 少了类方法:class_func """
    import inspect
    print([i for i in dir(Demo) if inspect.isfunction(getattr(Demo, i))])
    # ['instance_func', 'static_func']
def filter_attrs_by_callable():
    """过滤出可调用的函数 """
    print([i for i in dir(Demo) if callable(getattr(Demo, i))])
    # ['__class__', '__delattr__', '__dir__', '__eq__', '__format__',
    # '__ge__', '__getattribute__', '__gt__', '__hash__','__init__',
    # '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__',
    # '__reduce__', '__reduce_ex__','__repr__', '__setattr__',
    # '__sizeof__', '__str__', '__subclasshook__', 'class_func',
    # 'instance_func', 'static_func']
if __name__ == '__main__':
    print_attrs_by_dict()
    print_attrs_by_dir()
    filter_attrs_by_inspect()
    filter_attrs_by_callable()


参考:

Python中如何获取类属性的列表

python–inspect模块

相关文章
|
7月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
1191 102
|
6月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
455 3
|
6月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
676 3
|
6月前
|
并行计算 安全 计算机视觉
Python多进程编程:用multiprocessing突破GIL限制
Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
473 3
|
7月前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
245 4
|
6月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
685 0
|
7月前
|
缓存 供应链 芯片
电子元件类商品 item_get - 商品详情接口深度分析及 Python 实现
电子元件商品接口需精准返回型号参数、规格属性、认证及库存等专业数据,支持供应链管理与采购决策。本文详解其接口特性、数据结构与Python实现方案。
|
Python
解决Python报错:DataFrame对象没有concat属性的多种方法(解决方案汇总)
总的来说,解决“DataFrame对象没有concat属性”的错误的关键是理解concat函数应该如何正确使用,以及Pandas库提供了哪些其他的数据连接方法。希望这些方法能帮助你解决问题。记住,编程就像是解谜游戏,每一个错误都是一个谜题,解决它们需要耐心和细心。
585 15
Python类中属性和方法区分3-8
Python类中属性和方法区分3-8
|
Python
Python尝试访问不存在的属性或方法
【6月更文挑战第2天】
448 3

推荐镜像

更多