面向对象编程及其类的创建
文章目录
- 面向对象编程及其类的创建
- 前言
- 一、面向过程编程和面向对象编程的概念
- 1.面向过程编程(Procedural Programming)
- 2.面向对象编程(Object-Oriented Programming,OOP)
- 二、面向对象编程基础
- 1.初识类(class)和对象
- 调用方法
- 2.类中的两种特殊方法(init,str)
- 1.init方法
- 2.str方法
- 3.类名称空间与对象的名称空间(命名空间)
- 总结
前言
大家好,从今天开始我们一起来进入python中的高级编程篇,我将会讲解比基础篇更加难的面向对象编程,并发编程,进程线程等等一些列的语法及其使用.
今天我们来讲解一下什么是面向对象编程,应该怎么创建一个类及其实例化一个对象或者说属性呢?
一、面向过程编程和面向对象编程的概念
1.面向过程编程(Procedural Programming)
面向过程编程: 核心是过程.就像工厂中的的流水线,按照指定步骤和流程,通过程序划分成一系列的函数,每个函数负责完成一个任务,最终通过函数的调用实现功能,适合那种一旦完成不需要变动的环境,用函数对数据进行操作。
面向过程编程的优点是简单直观,便于理解和掌握。
2.面向对象编程(Object-Oriented Programming,OOP)
面向对象编程: 核心是对象.世间万物都是对象,我们可以随意的创建我们想要的对象,对象是由数据和操作数据的方法封装起来形成一个对象,每个对象都有自己的属性和功能.实现对象交互产生结果.
面向对象编程的三要素: 1,封装(Encapsulation) 2继承(Inheritance) 3多态(Polymorphism)
面向对象编程的优点是可以提高代码的可重用性、灵活性和扩展性
以上就是我们常说的两种编程范式.
二、面向对象编程基础
1.初识类(class)和对象
类:—>就是具有相同特征的一类事物.
对象/实例:—>就是具体的一个事物
实例化:—>将一个类到实例的一个过程.
在python中,我们可以这样理解,用变量表示特征,用函数表示技能,具有相同特征和技能的一类事物就是类,对象就是这一类事物中的具体的一个.
创建一个类语法:
class Person:#定义一个person的类role = '人类'#属性def Walk(self):#定义Person类中的walk方法print('人在走')
在面向对象编程中,类中的变量通常被称为属性,函数通常被称为方法。
我们在定义一个类中类名的首字母大写
调用方法
class Person:#定义一个person的类role = '人类'#属性def Walk(self):#定义Person类中的walk方法print('人在走')
print(Person.role)
print(Person.Walk)
运行结果:
这里面我们print()输出类中的属性,会打印出属性的结果,而打印类中的方法,会显示类中方法的的内存地址.
现在,我们要调用一个类,我们要先将类实例化,然后才能调用.
语法:
实例化:--->类名()用一个变量进行接收类的实例化,然后调用当中的方法class Person:#定义一个person的类role = '人类'#属性def Walk(self):#定义Person类中的walk方法print('人在走')p = Person()#实例化p.Walk()#调用people.Walk方法
运行结果:
这样我们就调用了类中的walk方法.
注意:
调用类中方法需要先将类实例化,然后再进行调用其中方法
2.类中的两种特殊方法(init,str)
1.init方法
1.__init__方法是一个特殊的方法,用于在创建对象时进行初始化操作。它在对象被创建时自动调用,并可以用来设置对象的属性值或执行其他必要的操作。__init__方法可以接受其他参数,可以用来初始化对象的属性。
以下代码演示init的使用方法:
class Person:def __init__(self, name, age): # 传入两个参数self.name = name # 初始化name属性self.age = age # 初始化age属性def speak (self):print(f'你好,我叫{self.name},我今年{self.age}岁')p = Person('仁泽',20)#实例化Person类并且传入参数对象
p.speak()#调用类中speak方法
运行结果:
你好,我叫仁泽,我今年20岁
2.str方法
2.__str__方法也是一个特殊的方法,用于返回对象的字符串表示。它在调用内置的str()函数时自动调用,并且应该返回一个可读性好的字符串,用于描述对象的信息。通常情况下,__str__方法会返回一些有关对象内部状态的信息,以便进行调试和输出。
class Person:def __init__(self, name, age): # 传入两个参数self.name = name # 初始化name属性self.age = age # 初始化age属性def speak (self):print(f'你好,我叫{self.name},我今年{self.age}岁')def __str__(self):return '你好'p = Person('仁泽',20)#实例化Person类并且传入参数对象
# p.speak()#调用类中speak方法
print(p)
运行结果:
我们使用print()打印实例化的类名,会自动输出出str方法中的返回值
3.类名称空间与对象的名称空间(命名空间)
创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字.这些名字称为类的属性.
创建一个对象会创建一个对象的名称空间,用来存储对象的名字.
在对象名.属性名会从对象自己的名称空间找属性,找不到则去类中找,类也找不到就去父类,最后找不到抛出异常.
总结
今天我们学习了面向过程编程与面向对象编程的区别,也学习了python类中的两种特殊方法__init____str__ 的使用方法,下次我们来学习面向对象编程的三个特性.
讲的不好,多多见谅,我们下次再见!
更多优质文章点这里