Python魔法方法参数的查询

本文介绍了如何使用Python的帮助系统来理解魔法方法的参数。通过在IDLE环境中调用help(object.方法名)的方式,作者成功地获取了魔法方法的详细信息,并分享了这一实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天自学Python看到了Python的魔法方法,到网上搜了搜关于魔法方法的文章,发现有好多魔法方法,心想这咋记得住传啥参数呢,就又搜了搜关于查看参数的方法,但是遗憾的是没有找到。于是自己倒腾了一下:


先打开Python的IDLE,我们都知道可以用help()来查看一个函数的用法,于是就先试了一下:

>>> help(__hasattr__)
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    help(__hasattr__)
NameError: name '__hasattr__' is not defined

>>> help(__getattr__)
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    help(__getattr__)
NameError: name '__getattr__' is not defined

>>> help(__init__)
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    help(__init__)
NameError: name '__init__' is not defined
发现一直是方法名没有定义,由于对__init__()方法比较熟悉,心想自己在类里用的还好好的,咋到这里就不成了呢。

等等.....在类里!!

我们都知道Python中无处不对象,而基类是object,那这些东西会不会是object的内置方法呢?那就试一试:

>>> help(object.__call__)
Help on method-wrapper object:

__call__ = class method-wrapper(object)
 |  Methods defined here:
 |  
 |  __call__(self, /, *args, **kwargs)
 |      Call self as a function.
 |  
 |  __eq__(self, value, /)
 |      Return self==value.
 |  
 |  __ge__(self, value, /)
 |      Return self>=value.
 |  
 |  __getattribute__(self, name, /)
 |      Return getattr(self, name).
 |  
 |  __gt__(self, value, /)
 |      Return self>value.
 |  
 |  __hash__(self, /)
 |      Return hash(self).
 |  
 |  __le__(self, value, /)
 |      Return self<=value.
 |  
 |  __lt__(self, value, /)
 |      Return self<value.
 |  
 |  __ne__(self, value, /)
 |      Return self!=value.
 |  
 |  __reduce__(...)
 |      helper for pickle
 |  
 |  __repr__(self, /)
 |      Return repr(self).
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |  
 |  __objclass__
 |  
 |  __self__
 |  
 |  __text_signature__


>>> help(object.__init__)
Help on wrapper_descriptor:

__init__(self, /, *args, **kwargs)
    Initialize self.  See help(type(self)) for accurate signature.

发现果然可以,问题就这样完美的解决了\(^o^)/~


但是值得注意的是,object的内置方法只有23个(我自己数的,可能会数错了<( ̄︶ ̄)>),要是某个方法你这样也查不到的话,那就只能去看看官方文档了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值