【Class 12】 python 面向对象---类方法

类方法 @classmethod

类方法主要的作用时,用于操作类变量,比实例方法会更加简单。
第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法

实例方法中需要采用 self.class.xxx 来调用类变量
类方法中,只需要调用 self.xxx 即可调用类变量

@classmethod
def plus_sum(cls):
	cls.sum += 1
	print(cls.sum)

静态方法 @staticmethod

参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法
访问类变量的时候,需要写 类的全程 class.xxx

成员的可见性 def __xxx(self) / __xx:

成员只能由类内部来进行修改
所以对类下面的变量修改,建议进行封装,提供方法函数来对类下面的变量进行修改。

在函数前面加双下划线 __xxx():该函数对其实例化和外部时无法被调用的
在变量前面加双下划线 __xxx :该变量时无法被外部成员或者实例化所调用的,该变量已经被类修改为了 __Class__xx 了。

继承类 Class xxx(xx_class)

  1. 子类会继承父类的变量、方法
  2. 子类构造函数中,需要添加父类构造函数中的所有变量
  3. 子类调用父类方法使用 super(class, self).init( ) / super(class, self).xxx
  4. 如果子类方法和父类方法出现重名,会优先调用子类方法
父类:
class People():
	def __init__(self, name ,age):
	pass
	
子类:
form xxx import People
Class Student(People):
	def __init__(self, school, name ,age):
	self.school = school
	#People.__init__(self, name, age)  // 子类调用父类构造函数中,必须传入self
	super(Student, self).__init__(name, age)
	
实例化:
stu1 = Student("青轩阁", "轩辕" ,16);

猜你喜欢

转载自blog.csdn.net/Ciellee/article/details/87738001