python类代码编写细节

在这里插入图片描述

一、class语句

python的class就和def一样,class语句是对象的创建者并且是一个隐含的赋值运算:当它执行时会产生类对象,并把其引用值存储到前面所使用的名称中。此外像def一样,class语句也是真正的可执行代码。直到python抵达并运行定义的class语句前,我们的类都不存在。

1.1 一般形式

class语句的一般形式如下(当列出一个以上的父类会触发多重继承):

class name(superclass,...):
	attr=value
	def method(self,...):
		self.attr=value

在class语句内,任何赋值语句都会产生类属性,并且还有特殊名称方法重载运算符。例如,如果定义了名为__init__的构造函数就会在实例对象创建时调用。

1.2 示例

待补充 96

二、方法

方法是位于class语句的主体内,由def语句创建的函数对象。从抽象的角度来看,方法为示例对象提供了要继承的行为。从程序设计的角度来看,方法的工作方式与简单函数完全一致,只是有一个重要差异:方法的第一位参数总是接受方法调用的隐含主体,也就是当前的实例对象。

换句话说,python会自动把实例方法的调用映射为类的方法函数,如下所示。方法调用需通过实例,就像这样:

instance.method(args...)

这会被自动翻译成以下形式的类方法调用:

class.method(instance,args...)

除了方法属性名称是正常被继承的之外,第一位参数就是方法调用背后唯一的神奇之处。在一个类的方法中,按惯例第一位参数通常都称为self(从技术上来讲,只有其位置重要,名称不重要)。这个参数给方法提供了一个钩子,从而返回调用的主体也就是实例对象:因为类可以产生许多实例对象,所以需要这个参数管理每个实例彼此各不相同的数据。

在这里插入图片描述

2.1 示例

在这里插入图片描述
在这里插入图片描述

2.2 调用父类构造函数

方法一般是通过实例来调用的,不过也有一些通过类调用的特殊函数,其中一个就是构造函数。正如所有其他属性,__init__方法也是由继承来查找的。也就是说,在构造时,python会找出并且只调用一个__init__。如果要保证子类的构造函数也会执行父类构造时的逻辑,那么一般都必须通过类显式地调用父类的__init__方法:

class super:
	def __init__(self,x):
		'''default code'''

class sub(super):
	def __init__(self,x,y):
		super.__init__(self,x)
		'''custom code'''

test=sub(1,2)

在这里插入图片描述

2.3 其他方法调用的可能性

在这里插入图片描述
在这里插入图片描述

三、继承

在这里插入图片描述

3.1 属性树的构造

在这里插入图片描述
在这里插入图片描述

3.2 定制被继承的方法

在这里插入图片描述
在这里插入图片描述

3.3 类接口技术

在这里插入图片描述
在这里插入图片描述

3.4 抽象父类

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.5 python3中的抽象父类:预览

在这里插入图片描述
在这里插入图片描述

四、命名空间:结论

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值