类的封装

封装的理解

python 类属性封装 python封装class_python 类属性封装


python 类属性封装 python封装class_类名_02


python 类属性封装 python封装class_封装_03


python 类属性封装 python封装class_类_04

#私有类属性:仅供当前类访问的类属性,子类亦不能访问
class <类名>:
	<私有类属性名> = <类属性初值>
	def __init__(self, <参数>):
		...
#区别:私有类属性需要有两个下划线

python 类属性封装 python封装class_类名_05

#私有类属性的公开与私有 举个栗子
class DemoClass:
	__count == 0
	def __init__(self, name):
		self.name = name
		DemoClass.__count += 1 #私有属性能在类内部被调用
	
	@classmethod
	def getCount(cls):
		retuen DemoClass.__count #类方法

dc1 = DemoClass("老王")
dc2 = DemoClass("老李")
print(DemoClass.getCount())
#私有变量的优势:只能通过特定的方法去访问,可以在访问函数中设置访问条件以及访问次数统计、控制,从而有效保护变量
#私有实例属性:仅供当前类内部访问的实例属性,子类亦不能访问
class <类名>:
	def __init__(self, <参数>):
		self.<__实例属性名> = <实例属性初值>
	...
#同样可以设置return函数返回
#ps.可用dc1(实例名)._DemoClass(类名)__name(私有变量)来访问私有变量,即私有变量不一定真的私有

类的保留属性

python 类属性封装 python封装class_python 类属性封装_06

python 类属性封装 python封装class_python 类属性封装_07


python 类属性封装 python封装class_python_08

类的保留方法

python 类属性封装 python封装class_类名_09


python 类属性封装 python封装class_python_10


python 类属性封装 python封装class_python_11


python 类属性封装 python封装class_封装_12


python 类属性封装 python封装class_封装_13

类的继承

继承的理解

python 类属性封装 python封装class_python_14


python 类属性封装 python封装class_python 类属性封装_15


python 类属性封装 python封装class_python_16

类继承的构建

#类继承的构建
class <类名>(<基类名>):
	def __init__(self, <参数>):
		<语句>
	...

python 类属性封装 python封装class_类_17


python 类属性封装 python封装class_类_18

python 最基础类

python 类属性封装 python封装class_python 类属性封装_19


python 类属性封装 python封装class_python_20


python 类属性封装 python封装class_python 类属性封装_21


python 类属性封装 python封装class_python_22

类的属性重载

python 类属性封装 python封装class_封装_23


python 类属性封装 python封装class_类名_24


重载无需标记

类的方法重载

python 类属性封装 python封装class_封装_25

# 增量重载:使用super()方法
class <派生类>(<基类名>):
	def <方法名>(self, <参数>):
		super.<基类方法名>(<参数>)
		...

类的多继承

class <类名>(<基类名>, <基类名>, <基类名>, ...):
	def __init__(self. <参数>):
		<语句块>
	...

python 类属性封装 python封装class_类名_26


python 类属性封装 python封装class_封装_27

总结

python 类属性封装 python封装class_封装_28