python语言中对象的继承含义_Python 之类与对象及继承

类与对象

学习类的语法 关键字 class 类别,分类

class 类名:

属性

特性特征

类名的编写规范:首字母大写 驼峰命令 见名知意--->遵守规范。

Math StudentInfo

class SuperMan: # 实例 类名()

# 属性-->本质:变量

height = 180

name = '咸蛋超人'

age = 18

共性/特性--->动作特征

本质:函数--->属于谁?类?--->类函数 or 类方法

self c语言 java 指针?

他与普通函数的唯一区别就是:函数括号内一定有self关键字

并且是self开头 self看起来啥事都不做

def move_skill(self):

print('具有瞬间移动的功能')

def fly_skill(self):

print('可以翻筋斗云')

def power_skill(self):

print('可以隔山打牛')

def wealth_skill(self):

print('我是招行的最大金主')

对象 or 实例 类里面的一个具体的个例

创建一个实例 或者创建一个对象 类名() 语法语法语法语法!

person_1 = SuperMan() # new 一个对象?

只有这个类的实例 才有权限 可以调用类里面的属性 函数

类里面:属性 函数

person_1.power_skill()

# 继承父类 子类

class SoftTestEngineer: # 父类

def basic_skill(self):

print("会做手动点点点测试")

def salary(self):

print("我的薪资是6k")

class SuperMan:

height = 180

name = '咸蛋超人'

age = 18

def move_skill(self, mill):

print(self.name + ':具有瞬间移动的技能,能够瞬间移动%s' % mill)

def fly_skill(self, tool, long=2000):

print('可以翻筋斗云,工具就是%s,可以翻%s米' % (tool, long)) # 格式化

def power_skill(self, a, b, c):

self.move_skill(c) # 调用函数?

self.fly_skill(a, b) # 调用函数?

print('可以隔山打牛')

def wealth_skill(self, **kwargs):

return kwargs

person_1 = SuperMan() # new 一个对象?

person_1.power_skill('定海神针', '2', '1000')

# person_1.move_skill()

# person_1.fly_skill(1000)

person_1.fly_skill('筋斗云')

# person_1.wealth_skill('招行','央行','工行','建行','平安')

result = person_1.wealth_skill(bank='招行', money=100000000)

print("返回的结果值", result)

类函数拓展学习 函数可以的 类函数也可以 类函数有self

1:类函数可以调用类的属性值吗?

可以调用 但是请加关键字self

2:类函数可以有位置参数吗?

可以

3:类函数可以有默认参数吗?

可以

4:类函数 中的位置参数与默认参数可以同时存在吗?

可以 而且还有顺序的规定 位置参数要在默认参数之前?

5:类函数可以有动态参数吗? 关键字参数吗?

可以

6:类函数可以调用同一个类里面的其他函数吗?

可以 但是要加self关键字?

7:return关键字 可以返回结果值?

可以

8:类函数可以加try...except?

可以!!!

初始化函数 def __init__() 出厂设置 一般存储属性值

什么时候用?

1:为所欲与 你的类你做主

2:如果这个属性是多个函数或者多处地方要用?

3:如果规定了 这个实例一旦创建必须具有哪些属性

class SuperMan:

def __init__(self, height, name, age=20): # 位置参数

self.height = height

self.name = name

self.age = age

def move_skill(self, mill):

print(self.name + ':具有瞬间移动的技能,能够瞬间移动%s' % mill)

def fly_skill(self, tool, long=2000):

print(self.name + '可以翻筋斗云,工具就是%s,可以翻%s米' % (tool, long)) # 格式化

def power_skill(self, a, b, c):

self.move_skill(c) # 调用函数?

self.fly_skill(a, b) # 调用函数?

print(self.name + '可以隔山打牛')

def wealth_skill(self, **kwargs):

return kwargs

如果你的类里面有初始化函数

创建实例的

person_2 = SuperMan('200', '腰子')

初始化函数作用?

1:创建实例的时候 必须要带参数

person_2.move_skill(100)

# 最简单的继承 类名后面的括号里面 放父类的名字

# 子类可以调用父类的任何属性 任何方法

# 重写 & 拓展

# class JuniorSoftTestEngineer(SoftTestEngineer): # 子类

# pass

class JuniorSoftTestEngineer(SoftTestEngineer): # 子类

# def salary(self): # 重写 跟父类的方法名 函数名同名

# print("我的薪资是10k")

def salary(self, salary):

print("薪资是%s"%salary)

def sql_skill(self): # 拓展 写父类没有的,子类特有的

print("数据库用的666")

def auto_test_skill(self):

print("会自动化测试")

if __name__ == '__main__':

SoftTestEngineer().basic_skill()

JuniorSoftTestEngineer().basic_skill()

SoftTestEngineer().salary()

JuniorSoftTestEngineer().salary(20000)

JuniorSoftTestEngineer().auto_test_skill()

多继承 了解即可

class A:

def add(self, a, b):

print("A里面的加法", a+b )

class B:

def add(self, a, b):

print("B里面的加法", a+b )

def sub(self, a, b):

print("B里面的减法", a-b )

class C(B, A): # 多继承 位置优先的关系 生效的时候:有同名函数的时候

pass

if __name__ == '__main__':

C().add(2, 8)

C().sub(9, 3)

超继承 比较贪婪的继承方法:

class SoftTestEngineer: # 父类

def basic_skill(self):

print("会做手动点点点测试")

def salary(self):

print("我的薪资是6k")

class JuniorSoftTestEngineer(SoftTestEngineer): # 子类

def basic_skill(self): # 重写 特殊重写 超继承 super 关键字

# SoftTestEngineer().basic_skill()

super(JuniorSoftTestEngineer, self).basic_skill()

print("我可以写测试用例,写测试报告")

def basic_skill_2(self):

self.basic_skill() # 调用父类函数里面的

if __name__ == '__main__':

JuniorSoftTestEngineer().basic_skill()

class A:

def __init__(self, a, b):

self.a = a

self.b = b

def add(self):

print("A里面的加法", self.a+self.b )

def chengfa(self):

print("A里面的加法", self.a * self.b )

class C(A):

pass

if __name__ == '__main__':

C(4, 6).add()

实例的创建 无初始化函数 类名()

无初始化函数 类名(对应的参数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值