python开发学习day18 (类与对象;__init__方法)
2020-06-24 目录:
一、面向对象编程
1.1 介绍
1.2 用法:类与对象
二、__init__方法
2.1 调用类的步骤
2.2 类属性操作
2.3 对象属性操作
三、内置函数
一、面向对象编程
1.1 介绍
对象就是存放相关数据和功能的容器,是面向对象编程的核心
优点:程序解耦合强,拓展性高
缺点:比面向过程更复杂
1.2 用法:类与对象
对象是数据与功能的集合体,而类是对象之间相同数据与功能的集合体
步骤:
一、在程序中使用时必须先定义类:即申请内存空间,将对象之间相同的数据与功能存放起来
与函数不同,类在定义时就会立即执行类体代码,然后类名指向该名称空间
二、调用类来产生对象,调用类的过程被称为实例化
本质上调用类就是产生一个与类相关联的子空间
class Student: school = '清华大学' def choose_course(self): print('正在选科') stu1 = Student() # 调用类产生对象 stu1.name = 'jason' # 为对象赋予独立属性 stu1.age = 18
stu1.gender = 'male'
二、__init__方法
2.1 调用类的步骤:
① 先创建一个与类相关联的子空间,也就是一个空对象 ② 自动触发类内的__init__(空对象,'周杰伦',18,'male') ③ 返回一个初始化好的对象,赋值给一个变量名
示例:
class Student: school = '清华大学' def __init__(self, x, y, z): # 在类内部定义函数不能return非none的值,否则会与类返回对象产生冲突 self.name = x self.age = y self.gender = z def choose_course(self): print('%s正在选科' % self) stu1 = Student('周杰伦', 18, 'male') # 调用类产生对象 stu2 = Student('彭于晏', 19, 'male') stu3 = Student('李孝利', 20, 'female')
2.2 类属性操作
类与对象都可以用. 来访问属性并完成增删改查的操作
① 访问类的数据属性
Student.school="北京大学" # 访问类的数据属性school,并作出修改
② 访问类的函数属性
Student.choose_course(stu1) # 调用函数choose_course
2.3 对象属性操作
对象.属性——优先从对象自己的空间找,找不到就去类里面找
特点:
① 类中的定义的数据属性为了给对象用的,而且所有对象共享的,大家访问的都是同一个地址
修改类的数据属性,所有的对象也会跟着改
② 类中的定义的函数属性,类可以调用但就是一个普通函数,而类中函数通常都是为对象准备的,
也就是说是给对象用的,(用法:绑定给对象)
stu1.choose_course() # 等同于choose_course(stu1)
三、内置函数
① eval() :用于执行一个字符串表达式,并返回表达式的值。
② frozenset(): 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。
③ pow():pow(10,3,3) 就是计算10 ** 3 % 3得到一个余数
④ reversed():返回一个反转的迭代器。
⑤ round():取四舍五入。
⑥ slice:s=slice(0,5,2),得到一个固定的切片操作(索引从0-4,步长为2)
⑦ sorted():对所有可迭代的对象进行排序操作(从小到大)。
⑧ sum() :对系列进行求和计算。
⑨ zip():用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。