零基础学python之高级编程(1)---面向对象编程及其类的创建

面向对象编程及其类的创建

文章目录

  • 面向对象编程及其类的创建
  • 前言
  • 一、面向过程编程和面向对象编程的概念
    • 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)

运行结果:

零基础学python之高级编程(1)---面向对象编程及其类的创建_第1张图片
这里面我们print()输出类中的属性,会打印出属性的结果,而打印类中的方法,会显示类中方法的的内存地址.

现在,我们要调用一个类,我们要先将类实例化,然后才能调用.

语法:

		实例化:--->类名()
		用一个变量进行接收类的实例化,然后调用当中的方法
		class Person:#定义一个person的类
	role = '人类'#属性
	def Walk(self):#定义Person类中的walk方法
		print('人在走')

	p = Person()#实例化
	p.Walk()#调用people.Walk方法
	

运行结果:

零基础学python之高级编程(1)---面向对象编程及其类的创建_第2张图片
这样我们就调用了类中的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)

运行结果:
零基础学python之高级编程(1)---面向对象编程及其类的创建_第3张图片
我们使用print()打印实例化的类名,会自动输出出str方法中的返回值


3.类名称空间与对象的名称空间(命名空间)

创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字.这些名字称为类的属性.

创建一个对象会创建一个对象的名称空间,用来存储对象的名字.

在对象名.属性名会从对象自己的名称空间找属性,找不到则去类中找,类也找不到就去父类,最后找不到抛出异常.


总结

今天我们学习了面向过程编程与面向对象编程的区别,也学习了python类中的两种特殊方法__init____str__ 的使用方法,下次我们来学习面向对象编程的三个特性.

讲的不好,多多见谅,我们下次再见!

更多优质文章点这里

你可能感兴趣的:(python,python,算法,开发语言)