赞
踩
类中编写的函数方法在方法名上方使用@staticmethod可以生成类中的静态方法,静态方法调用必须要传入指定的参数才行,不论调用对象是类还是对象
该方法创建:
@staticmethod
def 函数名:
函数代码
class Porple:
age = 18
@staticmethod
def pl3(nb):
print("这是类和对象都可使用的静态方法,age=", nb)
man = Porple()
man.pl3(man.age)
man.pl3(Porple.age)
man.age = 20
man.pl3(man.age)
man.pl3(Porple.age)
该动态方法会自动将对象作为第一个参数传给被调用的动态方法
该方法创建就是
def 函数名:
函数代码
class Porple:
age = 18
def pl1(self):
print("这是绑定给对象的动态方法,age=",self.age)
man = Porple()
print(Porple.age)
print(man.age)
man.pl1()
man.age = 20
print(Porple.age)
print(man.age)
man.pl1()
该方法会将类作为第一个参数自动传给该动态方法
该方法创建就是
@classmethod
def 函数名:
函数代码
class Porple: age = 18 @classmethod def pl2(self): print("这是绑定给类的动态方法,age=", self.age) man = Porple() print(Porple.age) print(man.age) man.pl2() man.age = 20 print(Porple.age) print(man.age) man.pl2()
用于描述类与类之间的关系,继承可以让子类(派生类)获得父类(基类)的所有属性和函数,子类可以有更多的属性和函数,继承可以是代码冗余减少、代码复用性增强。
继承方式:
class 类名(继承的父类可以是多个):
类代码
没有继承父类的类,变量和函数都是在类中寻找其名称空间然后调用
只继承一个父类时,子类所调用的变量和函数首先在自己的类中寻找,然后才去父类中寻找
如果子类继承的多个父类都是基类就只会在父类中寻找,此时按照继承顺序寻找。
继承多个父类时,如果子类没有寻找到,就会在父类中寻找,父类中没有时会去父类的父类寻找,直到第一个父类全部寻找结束,此时是按深度优先的规则寻找。
此时查找顺讯从左到右,父类为子类时,需要去父类的父类中寻找最后在最后一个父类中寻找,此时为广度优先。
使用super可以拓展子类的内置属性,在父类的基础上获取新的属性。
派生使用形式:
def init(self):
super().init(父类实例化时需要的参数) 该语法针对于python3.X
super(父类, self).init(父类实例化时需要的参数) 该语法针对于python2.X
添加上新的属性
class Fa: def __init__(slef, n, b): slef.n = n slef.b = b class Soon(Fa): def __init__(self, n1, b1, c1, v1): super(Fa, self).__init__(n1, b1)# 该语法针对于python2.X super().__init__(n1, b1)# 该语法针对于python3.X self.c = c1 self.v = v1 ss = Soon(1, 2, 3, 4) print(ss.n) print(ss.b) print(ss.c) print(ss.v)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。