Python高阶编程-面向对象

Python面向对象编程:

摘要
面向对象编程是在面向过程编程的基础上发展来的,它比面向过程编程具有更强的灵活性扩展性

面向对象编程(Object-oriented Programming,简称 OOP),是一种封装代码的方法。
代码封装,其实就是隐藏实现功能的具体代码,仅留给用户使用的接口,就好像使用计算机,用户只需要使用键盘、鼠标就可以实现一些功能,而根本不需要知道其内部是如何工作的。

声明类:

class 类名:
	类体:
class Person:				#定义一个人类
	role = 'person'			#角色属性
	name = '张三'			#姓名属性
	age  = 18     			#年龄属性
	height = 175			#身高属性
	weight = 65				#体重属性
	
	def walk(self):			#方法:人会走路
		print('人会走路')
	def run(self):			#方法:人会跑步
		print('人会跑步')
	def eat(self):			#方法:人会吃饭
		print('人会吃饭')
		
p1 = Person() #实例化

1.概念:

  1. 面向过程:(Procedure Oriented)是一种以过程为中心的编程思想。核心是过程(流水线式思维),考虑周全什么时候处理什么东西,最终实现一个什么结果。
    优点:是极大的降低了写程序的复杂度,只需要顺着执行的步骤,堆叠代码,一套流水线或者流程就是用来解决一个问题。
    缺点:代码牵一发而动全身
  2. 面向对象: 核心是对象(上帝式思维),世间万物皆为对象。
    优点:解决了程序的扩展性,对某一个对象单独修改,会立即反应到整个体系中
    缺点:可控性差,无法像面向过程的程序设计流水线式的可以精准预测问题的处理流程与结果,面向对象的程序一旦开始就由对象之间的交互解决问题。
  3. :可以理解是一个模板,通过它可以创建出无数个具体实例。比如,前面编写的 Person 表示的只是人类这个物种,通过它可以创建出无数个实例来代表各种不同特征的人(这一过程又称为类的实例化)。
  4. 对象:类并不能直接使用,通过类创建出的实例(又称对象)才能使用。这有点像汽车图纸和汽车的关系,图纸本身(类)并不能为人们使用,通过图纸创建出的一辆辆车(对象)才能使用。
  5. 属性:类中的所有变量称为属性。例如,Person 这个类中,role、name、age、height、height 都是这个类拥有的属性。
  6. 方法:类中的所有函数通常称为方法。不过,和函数所有不同的是,类方法至少要包含一个 self 参数(后续会做详细介绍)。例如,Person 类中,crawl()、eat()、sleep()、protect() 都是这个类所拥有的方法,类方法无法单独使用,只能和类的对象一起使用。

2.类的两种作用

#1.属性引用(类名.属性)
print(Person.role)  # 查看属性
print(Person.walk)

#2.实例化(类名()就是实例化) 即:对象名 = 类名()
p1 = Person()  # 实例化。p1是对象名/实例名

3.init()特殊方法

1.类的初始化方法,当实例化时,会自动触发__init__()函数的运行,可以为每个实例(对象)来定制自己的特征

2self:在实例化时自动将对象/实例本身传给__init__()的第一个参数(self)。

 #__str__(),打印对象名时自动调用的特殊方法
class Person:  # 定义一个人类
	role = 'person'  # 人的角色属性都是人
    def __init__(self,name,age):
    	self.name = name  # 每个角色都有自己的昵称
        self.age = age
    def walk(self):  # 人可以走路
        print('人在走路')
    def __str__(self):
        return '姓名:%s 年龄:%s' % (self.name, self.age)
        
p1 = Person('balck', 20)
print(p1)

4.特殊的类属性

print(Person.name) # 类的名字
print(Person.doc) # 类的文档字符串
print(Person.bases) # 类所有的父类构成的一个元组
print(Person.dict) # 类的字典属性

你可能感兴趣的:(python,物联网,python,开发语言)