python面向对象

推导式 (对前一章的推导式的补充)

字典推导式

{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()#创建对象,对象赋值给了zs
zs.study_python()# zhangsan学习python
zs.study_C()# zhangsan学习C
zs.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 = 20
zs.gender = '男'
zs.study_python()
print('-'*80)
ls= LogicStudents()
ls.name = '李四'
ls.age = 21
ls.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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猩猩文学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值