今天自学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个(我自己数的,可能会数错了<( ̄︶ ̄)>),要是某个方法你这样也查不到的话,那就只能去看看官方文档了。