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()
实例的创建 无初始化函数 类名()
无初始化函数 类名(对应的参数)
Python 之类与对象及继承的更多相关文章
- python中类与对象之继承
面对对象的三大特性之继承 1.什么是继承? 在程序中,继承指的是class与class之间的关系 继承是一种关系,必须存在两个class才能产生这种关系:被继承的class称为父类,继承的class称 ...
- python day18--面向对象,继承
# class Animal: # breath = '呼吸' # # def __init__(self, name, sex, age): # self.name = name # self.se ...
- 一文讲全了Python 类和对象内容
摘要:这是一个关于 Python 类和对象的全部内容. 本文分享自华为云社区<从零开始学python | Python 类和对象-面向对象编程>,原文作者:Yuchuan . Pytho ...
- python基础——获取对象信息
python基础——获取对象信息 当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type( ...
- Python深入03 对象的属性
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python一切皆对象(object),每个对象都可能有多个属性(attribut ...
- #JavaScript对象与继承
JavaScript对象与继承 JavaScript是我在C语言之后接触的第二门编程语言,大一暑假的时候在图书馆找了一本中国人写的JavaScript程序设计来看.那个时候在编程方面几乎还是小白,再加 ...
- python 类和对象
类和对象 类 1.类的组成 数据和函数,二者是类的属性 2.两个作用: 实例化 属性引用 属性引用:类名.属性(增删改查) 实例化: 类名加括号就是实例化,会自动出发__init__的运行 ...
- python学习日记(面向对象——继承)
什么是继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 class Par ...
- Python类与对象的理解
注意python的类对象与实例对象的区分 类对象与实例对象是相对的,例如:a=1,那么a就是int的一个实例对象,这里的a相对于int来说,a是实例对象,int是类对象.但是int同时又是type的实 ...
随机推荐
- js多语言切换demo
网站为了国际化的需要,会使用到语言包,案例如下图. 这次尝试用js来打语言包,用到了插件 jquery.i18n.properties ,很明显,使用这个插件需要先加载jquery. 代码布局结构 ...
- python制作一个简单词云
首先需要安装三个包:# 安装:pip install matplotlib# 安装:pip install jieba# 安装pip install wordcloud 1.制作英文字母的词云 效果图 ...
- mysql sleep 死锁例子
表结构 CREATE TABLE `orders` ( `order_id` int(11) NOT NULL, `order_addr` varchar(255) DEFAULT NULL ) EN ...
- Delphi 建立ODBC数据源
樊伟胜
- 网络基础篇之HDLC、PPP(原理)
一.广域网传输 之前讲解的都是关于局域网的数据传输,这次讲解的是广域网的传输. 广域网简称WAN,是一种跨越超大的.地域性的计算机网络集合.通常跨省.市.甚至一个国家.广域网包括很多子网,子网可以是局 ...
- Zookeeper01——zk的基本信息和安装
一.Zookeeper的基本信息 1.1背景 无论在前面,我们学习hdfs,还是学习redis集群,我们都会使用到一个zookeeper进行选举.这导致了Redis的产生. 我们知道,在先前我们使用Z ...
- codeforces Educational Codeforces Round 65 (补完)
C News Distribution 并查集水题 D Bicolored RBS 括号匹配问题,如果给出的括号序列nesting depth为n,那么最终可以分成两个nesting depth为n ...
- D - Yet Another Problem On a Subsequence CodeForces - 1000D (DP,组合数学)
D - Yet Another Problem On a Subsequence CodeForces - 1000D The sequence of integers a1,a2,-,aka1,a2 ...
- Android异常与性能优化相关面试问题-bitmap面试问题详解
recycle: 对于Bitmap来说内存分为Java内存和Native内存,而当图片不用时建议调用一下recycle()方法来将native层的内存进行回收,下面看一下它的源码官方对它的解释: LR ...
- (三) 结构化查询语言SQL——1
1. SQL概述 SQL,结构化查询语言,重要性不必在赘述了,基本上开发软件没有不用到的,此外在一些大数据也有广泛的应用.SQL主要包含数据定义语言(DDL).数据操纵语言(DML)以及数据控制语言( ...