Python Class

1、attribute references 属性引用

Now what can we do with instance objects? The only operations understood by instance objects are attribute references. There are two kinds of valid attribute names: data attributes and methods.

我们能对实例对象做什么呢?实例对象仅能理解的操作是属性的引用存在两种有效的属性:数据属性和方法

2、attribute reference -- method

The other kind of instance attribute reference is a method. A method is a function that “belongs to” an object.

另一种实例属性的引用是方法,方法是一个函数,但是其属于对象。

3、self

方法的第一个参数常常被命名为 self。 这也不过就是一个约定: self 这一名称在 Python 中绝对没有特殊含义。 但是要注意,不遵循此约定会使得你的代码对其他 Python 程序员来说缺乏可读性,而且也可以想像一个 类浏览器 程序的编写可能会依赖于这样的约定。

4、__init__() 初始化函数/构造函数

The instantiation operation (“calling” a class object) creates an empty object. Many classes like to create objects with instances customized to a specific initial state. Therefore a class may define a special method named __init__(), like this:

def __init__(self):

     self.data = []

When a class defines an __init__() method, class instantiation automatically invokes __init__() for the newly-created class instance. 

实例化操作会创建一个空对象。 许多类喜欢创建带有特定初始状态的自定义实例。 为此类定义可能包含一个名为 __init__() 的特殊方法,就像这样:

def __init__(self):

     self.data = []

当一个类定义了 __init__() 方法时,类的实例化操作会自动的为新创建的类实例发起调用 __init__()方法,对新实例进行初始化。
5、继承的定义

class DerivedClassName(BaseClassName):

class DerivedClassName(Base1, Base2, Base3):

6、super()

super() 函数是用于调用父类(超类)的一个方法,The benefits of super() in single-inheritance are minimal ,其主要用来解决多重继承问题,it lets you avoid referring to the base class explicitly。

class LoggingDict(dict):

    def __setitem__(self, key, value):

            logging.info('Setting %r to %r' % (key, value))

            super().__setitem__(key, value)

多重继承中调用方法时,需要对当前类和基类进行搜索以确定方法所在的位置,这就牵涉到MRO(Method Resolution Order,方法解析顺序)

7、解析

Method references are resolved as follows: the corresponding class attribute is searched, descending down the chain of base classes if necessary, and the method reference is valid if this yields a function object.

8、重载

Derived classes may override methods of their base classes. 

 

参考:

https://docs.python.org/zh-cn/3/tutorial/classes.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值