python是面向什么编程_python基础之面向对象编程

python基础之面向对象编程

1:面向过程编程

面向过程编程就是把一件事,按照步骤一步一步的完成,最后这件事给完成了。但是如果中途有那一个步骤没完成,那这个事就没有完成。(一环扣一环)

如果后期那一段代码需要修改,牵一发而动全身,所以引出了面向对象编程

1:什么是对象?

对象就是男(女)朋友?这个可不是程序中的对象。对象就是是数据和功能的整体包装。

2:为什么要有对象?

面向过程编程是把复杂问题简单化,但是扩展性不好,所以吗就引出了面向对象编程,解耦合强,扩展性好

3:如何使用对象?

使用对象就是使用类

4:什么是类?

类是对象与对象之间的相同的数据与功能的集合体

5:如何使用类?

一:定义

# 使用类必须先定义它

class 类名(): # 类名使用驼峰命名,括号可要也行,不可要也行

pass # 数据和功能

# 在程序执行时:申请内存空间,把对象相同的数据和功能存起来,同时也会执行类

二:初始版本

class Students:

# 学生对象相同的数据

school = '东京校区'

# 学生对象相同的功能

def choose_course(self):

print("正在选课")

print("正在化妆》》》》》》》》")

print(Students.__dict__)

# 通过调用类来产生对象:也称实例化了一个对象

# 调用的本质是与类空间产生关联

s1 = Students()

s2 = Students()

s3 = Students()

print(s1.__dict__)

print(s2.__dict__)

print(s3.__dict__)

s1.name = "Alan"

s1.age = 18

s1.gender = "male"

s2.name = "Kela"

s2.age = 39

s2.gender = "female"

s3.name = "Red"

s3.age = 28

s3.gender = "male"

print(s1.__dict__)

print(s2.__dict__)

print(s3.__dict__)

三:优化

优化

class Student:

school = "东京校区"

def func(self):

print('学生相同的功能')

s1 = Student()

s2 = Student()

s3 = Student()

def init(self,x,y,z):

self.name = x

self.age = y

self.gender = z

init(s1,"Alan",18,"male")

init(s2,"Kela",39,"female")

init(s3,"Red",28,"male")

print(stu1.__dict__)

print(stu2.__dict__)

print(stu3.__dict__)

四:精华版

class Students:

school = '东京校区'

def __init__(self,name, age, sex):

self.name = name

self.age = age

self.sex = sex

def func(self):

print("学生的功能")

s1 = Students('Alan', 18, 'male')

s2 = Students('Kela', 39, 'female')

s3 = Students('Red', 28, 'male')

print(s1.__dict__)

print(s2.__dict__)

print(s3.__dict__)

wanings1:self这个是形参而已,可以取任何名字。为什么实例化的时候没有传参了,其实是python内部帮我传参了,而且参数是你要实例化的名字,所以就取名为self

warnings2:

1:调用类,会创建一个对象空间,同时对象空间与类空间有建立了关系

2:会触发类内__init__()这个方法

3:返回一个初始化后的对象,可以赋值给变量名

6:属性操作

一:类属性操作

class Students:

school = '东京校区' # 这个也称为公有属性

def __init__(self,name, age, sex):

self.name = name

self.age = age

self.sex = sex

# 这里还可以加好多坨代码,但是必须要返回None的值

def func(self):

print("学生的功能")

print(Studnets.school)

print(Students.name) # 这个属性无法访问,这个是具体实例化对象的属性

print(Students.func('a')) # 这个是要自己传参的,因为只有实例化的时候,内部可以帮忙带传,如果是类调用方法的话,这个函数有几个参数就需要传几个参数

print(Students.__init__('aa','bb',18,'male'))

二:对象属性操作

class Students:

school = '东京校区'

def __init__(self,name, age, sex):

self.name = name

self.age = age

self.sex = sex

def func(self):

print("学生的功能")

s1 = Students('Alan', 18, 'male')

s2 = Students('Kela', 39, 'female')

s3 = Students('Red', 28, 'male')

print(s1.__dict__)

print(s1.name)

print(s1.school)

s1.school='千代田校区'

print(s1.name)

print(Students.school)

s1.func() # 这个不需要参数,这个是因为,在实例化对象的时候,内部代传的参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值