python基础语法之面什么是向对象

本文深入讲解面向对象编程的概念,对比面向过程,介绍Python中的类定义、属性和方法,以及self参数的作用,帮助初学者理解面向对象的核心思想。

1.什么是面向对象

			。Python是一门面向对象的编程语言
			。所谓面向对象的语言,简单理解就是语言中所有操作都是通过对象来完成的
			。什么是面向过程
					1.面向过程指将我们的程序分解为一个一个步骤,通过对每个步骤的抽象来完成程序
					2.。这种编写方式往往只适用于一个功能,如果要试下别的功能往往复用性比较低
					3.这种编程方式符合人类的思维,编写起来比较容易
						a.妈妈穿衣服穿鞋出门
						b.妈妈骑车
						c.妈妈到超市
						d.妈妈买西瓜
						e.妈妈结账
						f.妈妈骑车回家
						g.到家切西瓜给孩子吃
					结果是孩子吃西瓜
				。面向对象的编程语言,关注的是对象,二不注重过程,对于面向对象一切皆对象
				。以上例子可以用孩子妈妈给孩子买西瓜姐姐
				。面向对象的编程思想,将所有的功能统一保存对应的对象中,要使用某个功能,直接找到对应的对象即可。
				。这种编码方式,比较容易阅读,并且易于维护,容易复用,但是编写的过程中不太符合常规思维,编写相对麻烦。

2.类的简介(class)

			。类(class):简单理解就是一张图纸,在程序中我们需要根据类来创建对象
			。我们也称对象是类的实例(instance)
			。如果多个对象是通过一个类创建的,我们称这些对象是一类对象
					a = int(1)  #创建一个int类的实例
					print(a,type(a))    #1 <class 'int'>
					b = str('pyhone')
					print(b,type(b)) 	#python <class 'str'>
			。自定义的类,类名要使用大写字母开头,使用大驼峰命名法
			。类的语法  class 类名([父类]):
				pass
				class MyClass():
					pass
				print(MyClass) 		#<class '__main__.MyClass'>
				mc = MyClass()  #mc就是通过MyClass创建的对象,mc是MyClass的实例
				print(mc,type(mc))		#<__main__.MyClass object at 0x0000000002889D48> <class '__main__.MyClass'>
				r = isinstance(mc,MyClass) 		#判断mc是不是有个类
				print(r) 			#True
			类也是一个对象,用了创建对象的对象
			类是type类型的对象,定义类实际上就是定义一个type类型的对象
			我们可以向对象中添加变量,对象中添加变量我们称之为属性
			语法:对象.属性名  = 属性值
			mc.name = '钢铁侠'
			print(mc.name)			#钢铁侠

3. 类的定义

		类和对象都是现实生活中事物的抽象
		实际上所有的实物都有两部分沟通成
			1.数据(属性)
			2.行为(方法)
			尝试过定义一个人类
			class Presson():
				#在类的代码块中,我们可以定义变量和函数
				#在类中我们定义的变量,将会成为所有实例的公共属性
				#所有实例都可以访问这些变量
				a = 10
				b = 20
				name = '钢铁侠'
				#在类中也可以定义函数,类中定义的函数我们称之为方法
				#这些方法可以通过该类的实例来访问
				def speck(a):
					print('hello!')
				
			p1 = Presson()
			p2 = Presson()
			print(p1.a,p2.b)		#10 20
			#调用的方法,对象.方法名
			#方法调用和函数调用的区别
			#如果函数调用 调用的时候有几个形参,就会传递几个实参
			#但是如果是方法调用,默认传递一个参数,方法中至少定义一个形参
			p1.speck()			#hello

4.self的含义

		为什么实例对象能够访问到类对象重点属性和方法?
		类中定义的属性和方法都是公共的,任何该类的实例都可以访问
		属性和方法调用的顺序
		当我们调用一个对象的属性时,解析器会诊当前的对象中寻找是否含有改属性
		如果有,则 直接返回当前对象中的属性值
		如果没有呢,则去当前对象的类对象中区寻找,如果类对象中 有则返回类对象中的属性值,
		如果类对象中没有,则报错
		方法每次被调用是,解析器都会自动传递一个参数
		第一个参数,就是调用方法的本身
		如果是p1调用,第一个参数就是p1的对象
		如果是p2调用,第一个参数就是p2的对象
		一般习惯把这个参数命名为self
		self
		 。self在定义时需要定义,但是在调用是会自动传入
		 。self的名字并不是规定死的,但是最好还是按照约定用self,
		 。self总是只调用时的类的实例
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值