方法列表
方法 | 说明 | 案例 |
---|
__dir__ | 列出所有的方法 | |
__init__ | 构造方法 | |
__new__ | 构建,实例化类 | |
__del__ | 析构实例 | |
__str__ | 打印相当于print | |
__call__ | 直接调用函数 | |
__getattr__ | 获取参数 | |
__setattr__ | 设置参数 | |
__getitem__ | sd | |
__setitem__ | sd | |
__len__ | sd | |
__repr__ | sd | |
obj.__dict__ | sd | |
obj.__class__ | sd | |
class.__bases__ | sd | |
class.__base__ | sd | |
class.__mro__ | 查看继承类的层次结构 | |
class.__subclasses__() | sd | |
__dir__
class CLanguage:
__a = 1
b = 2
def __init__ (self):
self.name = "C语言中文网"
self.add = "http://c.biancheng.net"
print(dir(CLanguage))
print("---------")
clangs = CLanguage()
print(clangs.__dir__())
"""
['_CLanguage__a', '__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__', 'b']
---------
['name', 'add', '__module__', '_CLanguage__a', 'b', '__init__', '__dict__', '__weakref__', '__doc__', '__repr__', '__hash__', '__str__', '__getattribute__', '__setattr__', '__delattr__', '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__new__', '__reduce_ex__', '__reduce__', '__subclasshook__', '__init_subclass__', '__format__', '__sizeof__', '__dir__', '__class__']
"""
obj.__dict__
"""
Created on Mon Feb 22 17:54:46 2021
@author: daicong
"""
class CLanguage:
"""输出可以看到私有属性的键需要加上类名"""
__a = 1
b = 2
def __init__ (self):
self.name = "C语言中文网"
self.add = "http://c.biancheng.net"
print(CLanguage.__dict__)
clangs = CLanguage()
"""会打印类中所有的键值对"""
print(clangs.__dict__)
print(clangs._CLanguage__a)
"""
{'__module__': '__main__', '_CLanguage__a': 1, 'b': 2, '__init__': <function CLanguage.__init__ at 0x000001FE7D55F3A0>, '__dict__': <attribute '__dict__' of 'CLanguage' objects>, '__weakref__': <attribute '__weakref__' of 'CLanguage' objects>, '__doc__': None}
{'name': 'C语言中文网', 'add': 'http://c.biancheng.net'}
"""
class.__mro__
class CLanguage:
__a = 1
b = 2
def __init__ (self):
self.name = "C语言中文网"
self.add = "http://c.biancheng.net"
print(CLanguage.__mro__)
"""
(<class '__main__.CLanguage'>, <class 'object'>)
object是所有类的父类
"""