{"id":1045833,"date":"2024-12-31T13:27:39","date_gmt":"2024-12-31T05:27:39","guid":{"rendered":""},"modified":"2024-12-31T13:27:44","modified_gmt":"2024-12-31T05:27:44","slug":"python%e5%a6%82%e4%bd%95%e6%9f%a5%e7%9c%8b%e5%ae%9a%e4%b9%89%e5%a5%bd%e7%9a%84%e7%b1%bb","status":"publish","type":"post","link":"https:\/\/docs.pingcode.com\/ask\/1045833.html","title":{"rendered":"Python\u5982\u4f55\u67e5\u770b\u5b9a\u4e49\u597d\u7684\u7c7b"},"content":{"rendered":"<p style=\"text-align:center;\" ><img decoding=\"async\" src=\"https:\/\/cdn-docs.pingcode.com\/wp-content\/uploads\/2024\/12\/c5d4e967-caba-44ad-8b43-9f6ee45f72be.webp?x-oss-process=image\/auto-orient,1\/format,webp\" alt=\"Python\u5982\u4f55\u67e5\u770b\u5b9a\u4e49\u597d\u7684\u7c7b\" \/><\/p>\n<p><p> <strong>\u5728Python\u4e2d\uff0c\u67e5\u770b\u5b9a\u4e49\u597d\u7684\u7c7b\u7684\u65b9\u6cd5\u6709\u5f88\u591a\uff0c\u5305\u62ec\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u3001\u6a21\u5757\u4ee5\u53ca\u81ea\u5b9a\u4e49\u51fd\u6570\u3002<\/strong> \u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528<code>dir()<\/code>\u51fd\u6570\u3001<code>help()<\/code>\u51fd\u6570\u3001\u67e5\u770b\u7c7b\u7684<code>__dict__<\/code>\u5c5e\u6027\u3001\u4f7f\u7528<code>inspect<\/code>\u6a21\u5757\u7b49\u65b9\u6cd5\u6765\u67e5\u770b\u7c7b\u7684\u5b9a\u4e49\u3002\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u8be6\u7ec6\u63a2\u8ba8\u5176\u4e2d\u7684\u4e00\u79cd\u65b9\u6cd5\uff1a<strong>\u4f7f\u7528<code>dir()<\/code>\u51fd\u6570\u6765\u67e5\u770b\u7c7b\u7684\u5c5e\u6027\u548c\u65b9\u6cd5\u3002<\/strong><\/p>\n<\/p>\n<p><p><strong>\u4f7f\u7528<code>dir()<\/code>\u51fd\u6570<\/strong>\uff1a<code>dir()<\/code>\u51fd\u6570\u662fPython\u5185\u7f6e\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u5b83\u53ef\u4ee5\u8fd4\u56de\u4e00\u4e2a\u5217\u8868\uff0c\u5217\u51fa\u5bf9\u8c61\u7684\u6240\u6709\u5c5e\u6027\u548c\u65b9\u6cd5\uff0c\u5305\u62ec\u7c7b\u7684\u5b9a\u4e49\u548c\u7ee7\u627f\u3002\u901a\u8fc7<code>dir()<\/code>\u51fd\u6570\uff0c\u6211\u4eec\u53ef\u4ee5\u65b9\u4fbf\u5730\u67e5\u770b\u7c7b\u4e2d\u5b9a\u4e49\u7684\u6240\u6709\u65b9\u6cd5\u548c\u5c5e\u6027\u3002<\/p>\n<\/p>\n<p><pre><code class=\"language-python\">class MyClass:<\/p>\n<p>    class_variable = &quot;I am a class variable&quot;<\/p>\n<p>    def __init__(self, instance_variable):<\/p>\n<p>        self.instance_variable = instance_variable<\/p>\n<p>    def class_method(self):<\/p>\n<p>        return &quot;I am a class method&quot;<\/p>\n<h2><strong>\u521b\u5efa\u7c7b\u7684\u5b9e\u4f8b<\/strong><\/h2>\n<p>my_instance = MyClass(&quot;I am an instance variable&quot;)<\/p>\n<h2><strong>\u4f7f\u7528 dir() \u51fd\u6570\u67e5\u770b\u7c7b\u7684\u5c5e\u6027\u548c\u65b9\u6cd5<\/strong><\/h2>\n<p>print(dir(MyClass))<\/p>\n<p><\/code><\/pre>\n<\/p>\n<p><p>\u8fd9\u6bb5\u4ee3\u7801\u4e2d\uff0c\u6211\u4eec\u5b9a\u4e49\u4e86\u4e00\u4e2a\u7c7b<code>MyClass<\/code>\uff0c\u5e76\u4f7f\u7528<code>dir(MyClass)<\/code>\u6765\u67e5\u770b\u8be5\u7c7b\u7684\u6240\u6709\u5c5e\u6027\u548c\u65b9\u6cd5\u3002\u8f93\u51fa\u7ed3\u679c\u5c06\u663e\u793a\u7c7b\u4e2d\u5b9a\u4e49\u7684\u6240\u6709\u5185\u5bb9\uff0c\u5305\u62ec\u5185\u7f6e\u5c5e\u6027\u548c\u65b9\u6cd5\u3002\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4f1a\u8be6\u7ec6\u63a2\u8ba8Python\u4e2d\u5176\u4ed6\u67e5\u770b\u7c7b\u5b9a\u4e49\u7684\u65b9\u6cd5\u3002<\/p>\n<\/p>\n<p><h3>\u4e00\u3001\u4f7f\u7528<code>help()<\/code>\u51fd\u6570<\/h3>\n<\/p>\n<p><p><code>help()<\/code>\u51fd\u6570\u662fPython\u5185\u7f6e\u7684\u4e00\u4e2a\u51fd\u6570\uff0c\u53ef\u4ee5\u6253\u5370\u5bf9\u8c61\u7684\u5e2e\u52a9\u6587\u6863\uff0c\u8be6\u7ec6\u63cf\u8ff0\u5bf9\u8c61\u7684\u5c5e\u6027\u548c\u65b9\u6cd5\u3002\u5b83\u4e0d\u4ec5\u9002\u7528\u4e8e\u7c7b\uff0c\u8fd8\u9002\u7528\u4e8e\u6a21\u5757\u3001\u51fd\u6570\u7b49\u3002<\/p>\n<\/p>\n<p><pre><code class=\"language-python\">class MyClass:<\/p>\n<p>    class_variable = &quot;I am a class variable&quot;<\/p>\n<p>    def __init__(self, instance_variable):<\/p>\n<p>        self.instance_variable = instance_variable<\/p>\n<p>    def class_method(self):<\/p>\n<p>        return &quot;I am a class method&quot;<\/p>\n<h2><strong>\u4f7f\u7528 help() \u51fd\u6570\u67e5\u770b\u7c7b\u7684\u5e2e\u52a9\u6587\u6863<\/strong><\/h2>\n<p>help(MyClass)<\/p>\n<p><\/code><\/pre>\n<\/p>\n<p><p>\u4f7f\u7528<code>help(MyClass)<\/code>\uff0c\u4f1a\u6253\u5370\u51fa\u8be5\u7c7b\u7684\u8be6\u7ec6\u63cf\u8ff0\uff0c\u5305\u62ec\u7c7b\u5b9a\u4e49\u3001\u5c5e\u6027\u3001\u65b9\u6cd5\u4ee5\u53ca\u7ee7\u627f\u4fe1\u606f\u3002<code>help()<\/code>\u51fd\u6570\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u8005\u5feb\u901f\u4e86\u89e3\u7c7b\u7684\u7ed3\u6784\u548c\u529f\u80fd\u3002<\/p>\n<\/p>\n<p><h3>\u4e8c\u3001\u67e5\u770b\u7c7b\u7684<code>__dict__<\/code>\u5c5e\u6027<\/h3>\n<\/p>\n<p><p>\u6bcf\u4e2a\u7c7b\u548c\u5b9e\u4f8b\u90fd\u6709\u4e00\u4e2a<code>__dict__<\/code>\u5c5e\u6027\uff0c\u5b83\u662f\u4e00\u4e2a\u5b57\u5178\uff0c\u5305\u542b\u7c7b\u6216\u5b9e\u4f8b\u7684\u6240\u6709\u5c5e\u6027\u548c\u65b9\u6cd5\u3002\u901a\u8fc7\u67e5\u770b<code>__dict__<\/code>\u5c5e\u6027\uff0c\u6211\u4eec\u53ef\u4ee5\u4e86\u89e3\u7c7b\u7684\u5b9a\u4e49\u3002<\/p>\n<\/p>\n<p><pre><code class=\"language-python\">class MyClass:<\/p>\n<p>    class_variable = &quot;I am a class variable&quot;<\/p>\n<p>    def __init__(self, instance_variable):<\/p>\n<p>        self.instance_variable = instance_variable<\/p>\n<p>    def class_method(self):<\/p>\n<p>        return &quot;I am a class method&quot;<\/p>\n<h2><strong>\u67e5\u770b\u7c7b\u7684 __dict__ \u5c5e\u6027<\/strong><\/h2>\n<p>print(MyClass.__dict__)<\/p>\n<p><\/code><\/pre>\n<\/p>\n<p><p>\u8f93\u51fa\u7ed3\u679c\u5c06\u663e\u793a\u7c7b\u4e2d\u5b9a\u4e49\u7684\u6240\u6709\u5185\u5bb9\uff0c\u5305\u62ec\u5c5e\u6027\u548c\u65b9\u6cd5\u3002\u901a\u8fc7\u67e5\u770b<code>__dict__<\/code>\u5c5e\u6027\uff0c\u6211\u4eec\u53ef\u4ee5\u6df1\u5165\u4e86\u89e3\u7c7b\u7684\u5185\u90e8\u7ed3\u6784\u3002<\/p>\n<\/p>\n<p><h3>\u4e09\u3001\u4f7f\u7528<code>inspect<\/code>\u6a21\u5757<\/h3>\n<\/p>\n<p><p><code>inspect<\/code>\u6a21\u5757\u63d0\u4f9b\u4e86\u8bb8\u591a\u6709\u7528\u7684\u51fd\u6570\uff0c\u7528\u4e8e\u83b7\u53d6\u5bf9\u8c61\u7684\u8be6\u7ec6\u4fe1\u606f\uff0c\u5305\u62ec\u7c7b\u7684\u5b9a\u4e49\u3001\u65b9\u6cd5\u3001\u5c5e\u6027\u7b49\u3002\u5b83\u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u8005\u6df1\u5165\u4e86\u89e3\u7c7b\u7684\u7ed3\u6784\u548c\u529f\u80fd\u3002<\/p>\n<\/p>\n<p><pre><code class=\"language-python\">import inspect<\/p>\n<p>class MyClass:<\/p>\n<p>    class_variable = &quot;I am a class variable&quot;<\/p>\n<p>    def __init__(self, instance_variable):<\/p>\n<p>        self.instance_variable = instance_variable<\/p>\n<p>    def class_method(self):<\/p>\n<p>        return &quot;I am a class method&quot;<\/p>\n<h2><strong>\u4f7f\u7528 inspect \u6a21\u5757\u67e5\u770b\u7c7b\u7684\u5b9a\u4e49<\/strong><\/h2>\n<p>print(inspect.getmembers(MyClass))<\/p>\n<p><\/code><\/pre>\n<\/p>\n<p><p>\u4f7f\u7528<code>inspect.getmembers(MyClass)<\/code>\uff0c\u6211\u4eec\u53ef\u4ee5\u83b7\u53d6\u7c7b\u7684\u6240\u6709\u6210\u5458\uff0c\u5305\u62ec\u5c5e\u6027\u548c\u65b9\u6cd5\u3002<code>inspect<\/code>\u6a21\u5757\u63d0\u4f9b\u4e86\u8bb8\u591a\u5176\u4ed6\u6709\u7528\u7684\u51fd\u6570\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u8005\u6df1\u5165\u4e86\u89e3\u7c7b\u7684\u7ed3\u6784\u548c\u529f\u80fd\u3002<\/p>\n<\/p>\n<p><h3>\u56db\u3001\u4f7f\u7528\u81ea\u5b9a\u4e49\u51fd\u6570<\/h3>\n<\/p>\n<p><p>\u5f00\u53d1\u8005\u53ef\u4ee5\u7f16\u5199\u81ea\u5b9a\u4e49\u51fd\u6570\uff0c\u7ed3\u5408\u4ee5\u4e0a\u65b9\u6cd5\uff0c\u65b9\u4fbf\u5730\u67e5\u770b\u7c7b\u7684\u5b9a\u4e49\u3002<\/p>\n<\/p>\n<p><pre><code class=\"language-python\">def print_class_info(cls):<\/p>\n<p>    print(f&quot;Class Name: {cls.__name__}&quot;)<\/p>\n<p>    print(&quot;Attributes and Methods:&quot;)<\/p>\n<p>    for name, obj in inspect.getmembers(cls):<\/p>\n<p>        if not name.startswith(&quot;__&quot;):<\/p>\n<p>            print(f&quot;{name}: {obj}&quot;)<\/p>\n<p>class MyClass:<\/p>\n<p>    class_variable = &quot;I am a class variable&quot;<\/p>\n<p>    def __init__(self, instance_variable):<\/p>\n<p>        self.instance_variable = instance_variable<\/p>\n<p>    def class_method(self):<\/p>\n<p>        return &quot;I am a class method&quot;<\/p>\n<h2><strong>\u4f7f\u7528\u81ea\u5b9a\u4e49\u51fd\u6570\u67e5\u770b\u7c7b\u7684\u5b9a\u4e49<\/strong><\/h2>\n<p>print_class_info(MyClass)<\/p>\n<p><\/code><\/pre>\n<\/p>\n<p><p>\u901a\u8fc7\u81ea\u5b9a\u4e49\u51fd\u6570<code>print_class_info<\/code>\uff0c\u6211\u4eec\u53ef\u4ee5\u65b9\u4fbf\u5730\u67e5\u770b\u7c7b\u7684\u540d\u79f0\u3001\u5c5e\u6027\u548c\u65b9\u6cd5\u3002\u81ea\u5b9a\u4e49\u51fd\u6570\u53ef\u4ee5\u6839\u636e\u9700\u8981\u8fdb\u884c\u6269\u5c55\uff0c\u63d0\u4f9b\u66f4\u591a\u6709\u7528\u7684\u4fe1\u606f\u3002<\/p>\n<\/p>\n<p><h3>\u4e94\u3001\u4f7f\u7528<code>vars()<\/code>\u51fd\u6570<\/h3>\n<\/p>\n<p><p><code>vars()<\/code>\u51fd\u6570\u8fd4\u56de\u5bf9\u8c61\u7684<code>__dict__<\/code>\u5c5e\u6027\uff0c\u5b83\u662f\u4e00\u4e2a\u5b57\u5178\uff0c\u5305\u542b\u5bf9\u8c61\u7684\u6240\u6709\u5c5e\u6027\u548c\u65b9\u6cd5\u3002\u901a\u8fc7\u67e5\u770b<code>vars()<\/code>\u51fd\u6570\u7684\u8fd4\u56de\u503c\uff0c\u6211\u4eec\u53ef\u4ee5\u4e86\u89e3\u7c7b\u7684\u5b9a\u4e49\u3002<\/p>\n<\/p>\n<p><pre><code class=\"language-python\">class MyClass:<\/p>\n<p>    class_variable = &quot;I am a class variable&quot;<\/p>\n<p>    def __init__(self, instance_variable):<\/p>\n<p>        self.instance_variable = instance_variable<\/p>\n<p>    def class_method(self):<\/p>\n<p>        return &quot;I am a class method&quot;<\/p>\n<h2><strong>\u4f7f\u7528 vars() \u51fd\u6570\u67e5\u770b\u7c7b\u7684\u5c5e\u6027\u548c\u65b9\u6cd5<\/strong><\/h2>\n<p>print(vars(MyClass))<\/p>\n<p><\/code><\/pre>\n<\/p>\n<p><p>\u4f7f\u7528<code>vars(MyClass)<\/code>\uff0c\u6211\u4eec\u53ef\u4ee5\u83b7\u53d6\u7c7b\u7684\u6240\u6709\u5c5e\u6027\u548c\u65b9\u6cd5\u3002<code>vars()<\/code>\u51fd\u6570\u662f\u4e00\u4e2a\u65b9\u4fbf\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u8005\u5feb\u901f\u4e86\u89e3\u7c7b\u7684\u7ed3\u6784\u548c\u529f\u80fd\u3002<\/p>\n<\/p>\n<p><h3>\u516d\u3001\u4f7f\u7528<code>__doc__<\/code>\u5c5e\u6027<\/h3>\n<\/p>\n<p><p>\u6bcf\u4e2a\u7c7b\u548c\u51fd\u6570\u90fd\u6709\u4e00\u4e2a<code>__doc__<\/code>\u5c5e\u6027\uff0c\u5b83\u662f\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u5305\u542b\u7c7b\u6216\u51fd\u6570\u7684\u6587\u6863\u5b57\u7b26\u4e32\u3002\u901a\u8fc7\u67e5\u770b<code>__doc__<\/code>\u5c5e\u6027\uff0c\u6211\u4eec\u53ef\u4ee5\u4e86\u89e3\u7c7b\u7684\u6587\u6863\u8bf4\u660e\u3002<\/p>\n<\/p>\n<p><pre><code class=\"language-python\">class MyClass:<\/p>\n<p>    &quot;&quot;&quot;<\/p>\n<p>    This is a sample class.<\/p>\n<p>    &quot;&quot;&quot;<\/p>\n<p>    class_variable = &quot;I am a class variable&quot;<\/p>\n<p>    def __init__(self, instance_variable):<\/p>\n<p>        self.instance_variable = instance_variable<\/p>\n<p>    def class_method(self):<\/p>\n<p>        return &quot;I am a class method&quot;<\/p>\n<h2><strong>\u67e5\u770b\u7c7b\u7684 __doc__ \u5c5e\u6027<\/strong><\/h2>\n<p>print(MyClass.__doc__)<\/p>\n<p><\/code><\/pre>\n<\/p>\n<p><p>\u4f7f\u7528<code>MyClass.__doc__<\/code>\uff0c\u6211\u4eec\u53ef\u4ee5\u83b7\u53d6\u7c7b\u7684\u6587\u6863\u5b57\u7b26\u4e32\u3002<code>__doc__<\/code>\u5c5e\u6027\u662f\u4e00\u4e2a\u6709\u7528\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u8005\u5feb\u901f\u4e86\u89e3\u7c7b\u7684\u6587\u6863\u8bf4\u660e\u3002<\/p>\n<\/p>\n<p><h3>\u4e03\u3001\u4f7f\u7528<code>__annotations__<\/code>\u5c5e\u6027<\/h3>\n<\/p>\n<p><p><code>__annotations__<\/code>\u5c5e\u6027\u662f\u4e00\u4e2a\u5b57\u5178\uff0c\u5305\u542b\u7c7b\u6216\u51fd\u6570\u7684\u6ce8\u89e3\u4fe1\u606f\u3002\u901a\u8fc7\u67e5\u770b<code>__annotations__<\/code>\u5c5e\u6027\uff0c\u6211\u4eec\u53ef\u4ee5\u4e86\u89e3\u7c7b\u7684\u7c7b\u578b\u6ce8\u89e3\u3002<\/p>\n<\/p>\n<p><pre><code class=\"language-python\">class MyClass:<\/p>\n<p>    class_variable: str = &quot;I am a class variable&quot;<\/p>\n<p>    def __init__(self, instance_variable: str):<\/p>\n<p>        self.instance_variable = instance_variable<\/p>\n<p>    def class_method(self) -&gt; str:<\/p>\n<p>        return &quot;I am a class method&quot;<\/p>\n<h2><strong>\u67e5\u770b\u7c7b\u7684 __annotations__ \u5c5e\u6027<\/strong><\/h2>\n<p>print(MyClass.__annotations__)<\/p>\n<p><\/code><\/pre>\n<\/p>\n<p><p>\u4f7f\u7528<code>MyClass.__annotations__<\/code>\uff0c\u6211\u4eec\u53ef\u4ee5\u83b7\u53d6\u7c7b\u7684\u7c7b\u578b\u6ce8\u89e3\u3002<code>__annotations__<\/code>\u5c5e\u6027\u662f\u4e00\u4e2a\u6709\u7528\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u8005\u4e86\u89e3\u7c7b\u7684\u7c7b\u578b\u4fe1\u606f\u3002<\/p>\n<\/p>\n<p><h3>\u516b\u3001\u4f7f\u7528<code>__module__<\/code>\u548c<code>__name__<\/code>\u5c5e\u6027<\/h3>\n<\/p>\n<p><p>\u6bcf\u4e2a\u7c7b\u90fd\u6709\u4e00\u4e2a<code>__module__<\/code>\u5c5e\u6027\uff0c\u5b83\u662f\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u8868\u793a\u7c7b\u6240\u5728\u7684\u6a21\u5757\u3002\u6bcf\u4e2a\u7c7b\u4e5f\u6709\u4e00\u4e2a<code>__name__<\/code>\u5c5e\u6027\uff0c\u5b83\u662f\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c\u8868\u793a\u7c7b\u7684\u540d\u79f0\u3002\u901a\u8fc7\u67e5\u770b<code>__module__<\/code>\u548c<code>__name__<\/code>\u5c5e\u6027\uff0c\u6211\u4eec\u53ef\u4ee5\u4e86\u89e3\u7c7b\u7684\u6a21\u5757\u4fe1\u606f\u548c\u540d\u79f0\u3002<\/p>\n<\/p>\n<p><pre><code class=\"language-python\">class MyClass:<\/p>\n<p>    class_variable = &quot;I am a class variable&quot;<\/p>\n<p>    def __init__(self, instance_variable):<\/p>\n<p>        self.instance_variable = instance_variable<\/p>\n<p>    def class_method(self):<\/p>\n<p>        return &quot;I am a class method&quot;<\/p>\n<h2><strong>\u67e5\u770b\u7c7b\u7684 __module__ \u548c __name__ \u5c5e\u6027<\/strong><\/h2>\n<p>print(MyClass.__module__)<\/p>\n<p>print(MyClass.__name__)<\/p>\n<p><\/code><\/pre>\n<\/p>\n<p><p>\u4f7f\u7528<code>MyClass.__module__<\/code>\u548c<code>MyClass.__name__<\/code>\uff0c\u6211\u4eec\u53ef\u4ee5\u83b7\u53d6\u7c7b\u7684\u6a21\u5757\u4fe1\u606f\u548c\u540d\u79f0\u3002<code>__module__<\/code>\u548c<code>__name__<\/code>\u5c5e\u6027\u662f\u6709\u7528\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u8005\u4e86\u89e3\u7c7b\u7684\u6a21\u5757\u4fe1\u606f\u548c\u540d\u79f0\u3002<\/p>\n<\/p>\n<p><h3>\u4e5d\u3001\u4f7f\u7528<code>__bases__<\/code>\u5c5e\u6027<\/h3>\n<\/p>\n<p><p>\u6bcf\u4e2a\u7c7b\u90fd\u6709\u4e00\u4e2a<code>__bases__<\/code>\u5c5e\u6027\uff0c\u5b83\u662f\u4e00\u4e2a\u5143\u7ec4\uff0c\u5305\u542b\u7c7b\u7684\u6240\u6709\u57fa\u7c7b\u3002\u901a\u8fc7\u67e5\u770b<code>__bases__<\/code>\u5c5e\u6027\uff0c\u6211\u4eec\u53ef\u4ee5\u4e86\u89e3\u7c7b\u7684\u7ee7\u627f\u5173\u7cfb\u3002<\/p>\n<\/p>\n<p><pre><code class=\"language-python\">class BaseClass:<\/p>\n<p>    pass<\/p>\n<p>class MyClass(BaseClass):<\/p>\n<p>    class_variable = &quot;I am a class variable&quot;<\/p>\n<p>    def __init__(self, instance_variable):<\/p>\n<p>        self.instance_variable = instance_variable<\/p>\n<p>    def class_method(self):<\/p>\n<p>        return &quot;I am a class method&quot;<\/p>\n<h2><strong>\u67e5\u770b\u7c7b\u7684 __bases__ \u5c5e\u6027<\/strong><\/h2>\n<p>print(MyClass.__bases__)<\/p>\n<p><\/code><\/pre>\n<\/p>\n<p><p>\u4f7f\u7528<code>MyClass.__bases__<\/code>\uff0c\u6211\u4eec\u53ef\u4ee5\u83b7\u53d6\u7c7b\u7684\u6240\u6709\u57fa\u7c7b\u3002<code>__bases__<\/code>\u5c5e\u6027\u662f\u4e00\u4e2a\u6709\u7528\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u5e2e\u52a9\u5f00\u53d1\u8005\u4e86\u89e3\u7c7b\u7684\u7ee7\u627f\u5173\u7cfb\u3002<\/p>\n<\/p>\n<p><h3>\u5341\u3001\u603b\u7ed3<\/h3>\n<\/p>\n<p><p>\u5728Python\u4e2d\uff0c\u67e5\u770b\u5b9a\u4e49\u597d\u7684\u7c7b\u7684\u65b9\u6cd5\u6709\u5f88\u591a\uff0c\u5305\u62ec\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u3001\u6a21\u5757\u4ee5\u53ca\u81ea\u5b9a\u4e49\u51fd\u6570\u3002\u901a\u8fc7\u4f7f\u7528<code>dir()<\/code>\u51fd\u6570\u3001<code>help()<\/code>\u51fd\u6570\u3001\u67e5\u770b\u7c7b\u7684<code>__dict__<\/code>\u5c5e\u6027\u3001\u4f7f\u7528<code>inspect<\/code>\u6a21\u5757\u3001\u4f7f\u7528<code>vars()<\/code>\u51fd\u6570\u3001\u67e5\u770b\u7c7b\u7684<code>__doc__<\/code>\u5c5e\u6027\u3001\u67e5\u770b\u7c7b\u7684<code>__annotations__<\/code>\u5c5e\u6027\u3001\u67e5\u770b\u7c7b\u7684<code>__module__<\/code>\u548c<code>__name__<\/code>\u5c5e\u6027\u3001\u67e5\u770b\u7c7b\u7684<code>__bases__<\/code>\u5c5e\u6027\u7b49\u65b9\u6cd5\uff0c\u6211\u4eec\u53ef\u4ee5\u65b9\u4fbf\u5730\u67e5\u770b\u7c7b\u7684\u5b9a\u4e49\u3002\u8fd9\u4e9b\u65b9\u6cd5\u5404\u6709\u4f18\u52a3\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u6839\u636e\u9700\u8981\u9009\u62e9\u5408\u9002\u7684\u65b9\u6cd5\u6765\u67e5\u770b\u7c7b\u7684\u5b9a\u4e49\u3002<\/p>\n<\/p>\n<h2><strong>\u76f8\u5173\u95ee\u7b54FAQs\uff1a<\/strong><\/h2>\n<p> <strong>\u5982\u4f55\u5728Python\u4e2d\u5217\u51fa\u6240\u6709\u5b9a\u4e49\u7684\u7c7b\uff1f<\/strong><br \/>\u60a8\u53ef\u4ee5\u4f7f\u7528\u5185\u7f6e\u7684<code>dir()<\/code>\u51fd\u6570\u7ed3\u5408\u6a21\u5757\u540d\u6216\u7279\u5b9a\u547d\u540d\u7a7a\u95f4\u6765\u5217\u51fa\u5f53\u524d\u4f5c\u7528\u57df\u4e2d\u7684\u6240\u6709\u7c7b\u3002\u82e5\u8981\u83b7\u53d6\u7279\u5b9a\u6a21\u5757\u4e2d\u7684\u7c7b\uff0c\u53ef\u4ee5\u4f7f\u7528<code>inspect<\/code>\u6a21\u5757\u4e2d\u7684<code>getmembers<\/code>\u51fd\u6570\uff0c\u4f20\u5165\u6a21\u5757\u548c<code>inspect.isclass<\/code>\u4f5c\u4e3a\u8fc7\u6ee4\u6761\u4ef6\u3002<\/p>\n<p><strong>\u5728Python\u4e2d\u5982\u4f55\u67e5\u770b\u7c7b\u7684\u5c5e\u6027\u548c\u65b9\u6cd5\uff1f<\/strong><br \/>\u8981\u67e5\u770b\u7c7b\u7684\u5c5e\u6027\u548c\u65b9\u6cd5\uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528<code>dir()<\/code>\u51fd\u6570\u4f20\u5165\u7c7b\u540d\uff0c\u8fd9\u6837\u53ef\u4ee5\u5217\u51fa\u7c7b\u7684\u6240\u6709\u6210\u5458\u3002\u82e5\u60f3\u83b7\u53d6\u66f4\u8be6\u7ec6\u7684\u4fe1\u606f\uff0c\u53ef\u4ee5\u4f7f\u7528<code>help()<\/code>\u51fd\u6570\uff0c\u5b83\u63d0\u4f9b\u7c7b\u7684\u6587\u6863\u5b57\u7b26\u4e32\u4ee5\u53ca\u65b9\u6cd5\u548c\u5c5e\u6027\u7684\u8be6\u7ec6\u63cf\u8ff0\u3002<\/p>\n<p><strong>\u5982\u4f55\u5728Python\u4e2d\u68c0\u67e5\u7c7b\u7684\u7ee7\u627f\u5173\u7cfb\uff1f<\/strong><br \/>\u8981\u68c0\u67e5\u4e00\u4e2a\u7c7b\u7684\u7ee7\u627f\u5173\u7cfb\uff0c\u53ef\u4ee5\u4f7f\u7528<code>__bases__<\/code>\u5c5e\u6027\uff0c\u5b83\u8fd4\u56de\u4e00\u4e2a\u5143\u7ec4\uff0c\u5305\u542b\u8be5\u7c7b\u6240\u6709\u76f4\u63a5\u7236\u7c7b\u3002\u901a\u8fc7\u8fd9\u4e00\u5c5e\u6027\uff0c\u60a8\u53ef\u4ee5\u4e86\u89e3\u7c7b\u662f\u4ece\u54ea\u4e9b\u7236\u7c7b\u6d3e\u751f\u800c\u6765\u7684\u3002\u6b64\u5916\uff0c<code>inspect<\/code>\u6a21\u5757\u7684<code>getmro()<\/code>\u51fd\u6570\u4e5f\u53ef\u4ee5\u7528\u6765\u83b7\u53d6\u7c7b\u7684\u6240\u6709\u57fa\u7c7b\uff0c\u8fd4\u56de\u4e00\u4e2a\u5143\u7ec4\uff0c\u6309\u7167\u65b9\u6cd5\u89e3\u6790\u987a\u5e8f\u6392\u5217\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"\u5728Python\u4e2d\uff0c\u67e5\u770b\u5b9a\u4e49\u597d\u7684\u7c7b\u7684\u65b9\u6cd5\u6709\u5f88\u591a\uff0c\u5305\u62ec\u4f7f\u7528\u5185\u7f6e\u51fd\u6570\u3001\u6a21\u5757\u4ee5\u53ca\u81ea\u5b9a\u4e49\u51fd\u6570\u3002 \u53ef\u4ee5\u901a\u8fc7\u4f7f\u7528dir()\u51fd [&hellip;]","protected":false},"author":3,"featured_media":1045849,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[37],"tags":[],"acf":[],"_links":{"self":[{"href":"https:\/\/docs.pingcode.com\/wp-json\/wp\/v2\/posts\/1045833"}],"collection":[{"href":"https:\/\/docs.pingcode.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/docs.pingcode.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/docs.pingcode.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.pingcode.com\/wp-json\/wp\/v2\/comments?post=1045833"}],"version-history":[{"count":"1","href":"https:\/\/docs.pingcode.com\/wp-json\/wp\/v2\/posts\/1045833\/revisions"}],"predecessor-version":[{"id":1045851,"href":"https:\/\/docs.pingcode.com\/wp-json\/wp\/v2\/posts\/1045833\/revisions\/1045851"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/docs.pingcode.com\/wp-json\/wp\/v2\/media\/1045849"}],"wp:attachment":[{"href":"https:\/\/docs.pingcode.com\/wp-json\/wp\/v2\/media?parent=1045833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/docs.pingcode.com\/wp-json\/wp\/v2\/categories?post=1045833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/docs.pingcode.com\/wp-json\/wp\/v2\/tags?post=1045833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}