欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

python面向对象

时间:2023-08-25
推导式 (对前一章的推导式的补充) 字典推导式

{out_exp_key:out_exp_value for out_exp in input_list}

​li = ['age','name','gender']dic = {i:li.index(i) for i in li} # i 是值还是索引?i 是值print(dic) # 可以形成字典形式for i in li: print(li.index(i)) #输出索引值

集合推导式

{out_exp_res for out_exp in input_set}

#集合:无序,去重#生成10个1-100的元素,进行去重import random #随机模块for i in range(10):#产生0-9整数序列(10个) print(random.randint(1,100))#[1,100]随便生成一个整数s={random.randint(1,100) for i in range(10)}print(s)

注意:

~没有元组推导式,(i for i in range(10)返回的是generator object)

面向对象编程 介绍:

面向对象编程:objec oriented programming 简称:oop,是一种程序设计思想。

需要注意点是,与之相对应的是面向过程编程思想。实际上,能够使用面向对象编程思想实现的程序,也都能通过面向过程完成。只是看哪种思想更适合当前开发需求。

面向对象概念及术语

类:对象,实例化,实例变量,类变量

方法:静态方法,类方法,方法重写,数据成员

封装,继承,多态

类 类的构成

类由三个部分构成

~类的名称:类名

~类的属性:一组数据

~类的方法:允许对类进行操作的方法

类的定义

python使用class关键字来定义类,其基本结构如下:

class MyClass:#class 定义类的关键字

    pass

注意:类名通常采用这种驼峰式的命名方式,尽量让字面意思体现出来类的作用。

小练习:

~创建类:学生类

~创建对象:张三

~在类中定义方法输出:张三学习python

class Students: def study_python(self): print('zhangsan学习python') def study_C(self): print('zhangsan学习C') def study_java(self): print('zhangsan学习java')zs = Students()#创建对象,对象赋值给了zszs.study_python()# zhangsan学习pythonzs.study_C()# zhangsan学习Czs.study_java()# zhangsan学习java

self参数

在类当中定义方法时,会发现系统帮我们自动创建了self参数,并且在调用对象的方法时,也无需传入self参数。那这个self是什么?

self的概念

~self本身就是形参

~self就是对象本身

class LogicStudents: def study_python(self): print(self.name,self.age,self.gender) print(self)# self代表的是对象,当创建的对象是谁,self就是谁zs= LogicStudents()zs.name = '张三'zs.age = 20zs.gender = '男'zs.study_python()print('-'*80)ls= LogicStudents()ls.name = '李四'ls.age = 21ls.gender = '男'ls.study_python()

__init__()方法

__init__()方法称为初始化方法,也可以称为构造方法。在创建对象时,会自动执行该方法,为对象的属性设置初始值。

class Student: def __init__(self,name,age): self.name = name self.age = age def stu_info(self): print(self.name,self.age)zs= Student('zhangsan',19)# print('--2--')zs.stu_info()

__str__()方法

如果在开发中,希望打印输出对象变量是,能够打印自定义内容。就可以使用__str__()方法,将自定义内容通过return关键字返回。

class Student: def __init__(self):#,name,age self.name = 'zhangsan' self.age = 19 def __str__(self):#返回值必须是字符串 # return self.name,self.age 返回元组类型,报错 return f'{self.name},{self.age}'zs= Student()print(zs)

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。