python 面向对象

1.面向过程与面向对象

面向过程编程与面向对象编程

面向过程编程

面向过程的核心是过'过程'二字,强调'流程'
即先干什么,再干什么,最后干什么

# 举例
	洗衣服
		1.先把衣服放入洗衣机
		2.再放入洗衣液
		3.打开开关
	强调过程
编程当中:
	优点:把复杂的问题流程化,进而简单化
	缺点:牵一发而动全身,扩展性差,可维护性差
	应用场景:对扩展性要求不高的地方				

面向对象编程

面向对象核心是'对象'二字
	什么是'对象'
		1.程序中:
			函数:盛放数据的容器
			对象:盛放数据和函数的容器
		2.生活中
			一切皆对象
			对象:特征与技能的结合体		
编程当中
	优点:扩展性强,可维护性强
	缺点:编程复杂度较高
	应用场景:对扩展性要求较高的地方						

在这里插入图片描述

类的定义和对象的的产生

定义

对象:特征与技能的结合体
类:一系列相似特征与相似对象的结合体

问题

先有类还是先有对象:
	1.程序中:
		必须先定义类,然后调用类产生对象
	2.生活中
		先有对象,再有人类		

专业语法定义

1.定义函数
	def 函数名():
		pass
2.定义类
	class 类名():
		pass		

定义类

发生了什么事?
	1.立即执行类体代码
	2.产生一个类的名称空间,把类体里面的执行的名字都扔到名称空间中(大字典)
	3.'''把类的名称空间绑定给__dict__,类名.__dict__'''
'''类名一般情况下使用大驼峰体书写(首字母大写)'''
class Student():
	# 定义一个属性
	school = 'SH'
	
	# 定义一个技能(函数) 
	def choose_course(stu_dict, course):
		stu_dict['course'].append(course)
		print('%s选课成功' % (stu_dict['name'], stu_dict['course']))
	
	# 查看类的名称空间
	print(student.__dict__)

在这里插入图片描述

对象属性

class Student()# 定义一个属性
	school = 'SH'

	''' 初始化方法
	 调用类自动触发的函数
	 不是一定要定义,需要用到就定义,不需要可以不定义'''
	def __init__(stu_obj, name, age, gender):
		stu_obj.name = name
		stu_obj.age = age
		stu_obj.gender
		stu1.__dict__['name'] = 'jason'
		stu1.__dict__['age'] = 18
		stu1.__dict__['gender'] = 'male'


	# 定义一个技能(函数)
    def choose_course(stu_dict, course):
        stu_dict['course'].append(course)
        print('%s选课成功 %s' % (stu_dict['name'], stu_dict['course']))
调用类发生了几件事
'''
	1.得到一个空对象
	2.调用Student.__dict__(空对象,'jason', '18', 'gender') 
	3.得到一个初始化的结果
'''
stu1 = Student()
print(stu1.__dict__)
print(stu2.__dict__)
print(stu1.name)
print(stu2.name)

# 属性的查找:先从自己的对象中查找,然后在去产生对象的类中取找

stu1.school = 'aaaa'
print(stu1.school

属性的查找

属性的查找
1.类属性:在类中写的属性称为类属性
2.对象属性:在对象名称空间中的属性就是对象属性

类属性的查找
1.print(Stu.school)
2.增加
Stu.country = 'China'
3.改
Stu.school = 'BJ'
4.删除
del Stu.school

 #实例化对象,stu就是一个实例 
stu = Student('jason', 18, 'male')

对象属性
1.print(stu.age)
2.增
stu.aaa = 'bbb'
3.改
stu.name = 'ccc'
4.删除
del stu.name

	'''类中的方法,类可以调用,对象也可以调用'''
类调用方法
Student.choose_course(stu, 'python')  # 类来调用,函数的参数
									  #	有几个就穿几个
print(Student.choose_course)

	''''
		类中的方法,类可以调用,对象也可以调用,但是推荐对象来调用,
		因为对象来调用,会把自己当成第一个参数传递给函数			
													 '''
stu.choose_course('python')													 
	

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值