Python的进阶之道【AIoT阶段一(上)】(十五万字博文 保姆级讲解)—玩转Python语法(二):面向对象(四)

简介: 玩转Python语法(二):面向对象

3.这年头程序员谁还没几个对象了

3.1 类与对象

🚩类就是类别,所谓物以类聚,类就是多个类似事物组成的群体的统称。能够帮我们快速的去判断一个事物所具有的性质,比如我们可以把世界上的生物大致的分为:微生物、动物、植物三类,我们也可以把动物按照一定规则继续进行细分:人类,鸟类…,每一个类显然是具有一些特殊的功能的,比如人可以吃喝生产创造等。


数据类型:不同的数据类型属于不同的类,我们曾学过一个函数:type(),使用这个函数可以查看数据类型:

print(type(100))
print(type('辰chen'))
print(type(3.14))

数据类型:不同的数据类型属于不同的类,我们曾学过一个函数:对象:100'辰chen'3.14,分别是int类,str类,float类之下的不同个例,这些个例的专业属于被称为实例或对象。

在 Python 中,一切皆对象


3.2 类的创建与组成

🚩创建类的语法结构:

class 类名:
  pass

比如我们可以创造一个学生类:

class Student:
  pass 
'''
在之前的学习中我们知道,当我们不清楚要实现什么的时候
可以先写一个 pass,这样可以让程序不报错
'''

这里需要注意,我们在起类名的时候需要尽量做到见名知意,我们需要养成这样的习惯,这是一个程序员的自我修养!


类的组成:

1.类属性

2.实例方法

3.静态方法

4.类方法


❗️ 注:下面的代码使用了 __init__() 方法,后续会有讲解,读者这里只需要知道 __init__() 的含义是把输入的值进行赋值即可(对创建的对象进行初始化)


class Student:  #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
    native_pace='长治'  #直接写在类里的变量,称为类属性
    def __init__(self,name,age):
        self.name=name    #self.name 称为实体属性,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
        self.age=age
    #实例方法
    def eat(self):
        print('学生在吃饭...')
    #静态方法
    @staticmethod
    def method():
        print('我使用了statticmethod进行修饰,所以我是静态方法')
    #类方法
    @classmethod
    def cm(cls):
        print('我是类方法,因为我使用了classmethod进行修饰')
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
    print('喝水')

你可以这么去理解:

在类中定义的函数被称为:实例方法

在类中定义的变量被称为:类属性

在类中定义函数前用 @staticmethod 修饰则为 静态方法

在类中定义函数前用 @classmethod 修饰则为 类方法


3.3 对象的创建

好啦好啦,现在让我来教你们怎么搞对象(不是

🚩创建对象的语法结构:

实例名 = 类名()
# 比如:
stu1 = Student()

下面我们来把 3.2 类的创建与组成 中的代码补全一下,你可以理解为 类 等同于一个框架,只有框架显然是不行的,在框架中具体实现的 对象,才是我们真正创造出来的个体


❗️ 注:下面的代码使用了 __init__() 方法,后续会有讲解,读者这里只需要知道 __init__() 的含义是把输入的值进行赋值即可(对创建的对象进行初始化)

# 博主:辰chen
# 博客地址:https://chen-ac.blog.csdn.net/
# 开发时间:2021/12/23 19:06
# 欢迎大家关注AIoT相关博客~
class Student:  #Student为类的名称(类名)由一个或多个单词组成,每个单词的首字母大写,其余小写
    native_pace='长治'  #直接写在类里的变量,称为类属性
    def __init__(self,name,age):
        self.name=name    #self.name 称为实体属性,进行了一个赋值的操作,将局部变量的name的值赋给实体属性
        self.age=age
    #实例方法
    def eat(self):
        print('学生在吃饭...')
    #静态方法
    @staticmethod
    def method():
        print('我使用了statticmethod进行修饰,所以我是静态方法')
    #类方法
    @classmethod
    def cm(cls):
        print('我是类方法,因为我使用了classmethod进行修饰')
#在类之外定义的称为函数,在类之内定义的称为方法
def drink():
    print('喝水')
#创建Student类的对象
stu1 = Student('辰chen',19)  # 因为我们在类中重写了 __init__()方法,即可以创建对象的时候赋值
stu1.eat()            #对象名.方法名()
print(stu1.name)
print(stu1.age)
print('------------------------')
Student.eat(stu1)     #37行与32行代码功能相同,都是调用Student中的eat方法
                      #类名.方法名(类的对象)-->实际上就是方法定义处的self

image.png

3.4 动态绑定属性和方法

🚩Python 是动态语言,在创建对象之后,可以动态地绑定属性和方法,下面我们直接用代码去介绍:

❗️ 注:下面的代码使用了 __init__() 方法,后续会有讲解,读者这里只需要知道 __init__() 的含义是把输入的值进行赋值即可(对创建的对象进行初始化)

# 博主:辰chen
# 博客地址:https://chen-ac.blog.csdn.net/
# 开发时间:2021/12/31 23:35
# 欢迎大家关注AIoT相关博客~
class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    # 实例方法
    def eat(self):
        print(self.name + '正在吃饭')
stu1 = Student('辰chen', 19)
stu2 = Student('娇妹儿', 20)
print(stu1.name, stu1.age)
print(stu2.name, stu2.age)
print('------------------------')
# 我们知道,经过上述赋值后,对于 stu1 和 stu2 只有两个实体属性: name, age
# 现在我们想给 stu1 添加一个性别的属性,可以采取下述结构
stu1.gender = '男'     # 动态绑定属性
print(stu1.name, stu1.age, stu1.gender)
# 下述代码运行结果可以看出我们只给 stu1 赋予了 gender 属性, stu2 是没有的
try:
    print(stu2.name, stu2.age, stu2.gender)
except AttributeError as e:
    print(e)
print('------------------------')
# 我们除了动态绑定属性,还可以动态绑定方法:
def drink():
    print('要多喝水!!!')
# 我们给 stu2 添加一个 drink 方法:
stu2.drink = drink   # 动态绑定方法
stu2.drink()
# 下述代码运行结果可以看出我们只给 stu2 赋予了 drink 方法, stu1 是没有的
try:
    stu1.drink()
except AttributeError as e:
    print(e)

image.png




目录
相关文章
|
4月前
|
IDE 数据挖掘 开发工具
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
97 7
|
12天前
|
Python
Python 高级编程与实战:深入理解面向对象与并发编程
本文深入探讨Python的高级特性,涵盖面向对象编程(继承、多态、特殊方法、类与实例属性)、异常处理(try-except、finally)和并发编程(多线程、多进程、异步编程)。通过实战项目如聊天服务器和异步文件下载器,帮助读者掌握这些技术,编写更复杂高效的Python程序。
|
11天前
|
Python
课时19:Python的基本语法
今天给大家带来分享的是 Python 的基本语法,分为以下六个部分。 1.在 Python 中严格区分大小写 2.Python 中的每一行就是一条语句,每条语句以换行结束 3.Python 中每一行语句不要过长 4.条语句可以分多行编写,语句后边以\结尾 5.Python 是缩进严格的语言,不要随便写缩进 6.在 Python 中使用#来表示注释
|
2月前
|
存储 开发者 Python
python基本语法
Python的基本语法简洁而强大,支持多种编程范式,包括面向对象编程和函数式编程。通过掌握变量和数据类型、操作符、控制结构、函数、类和模块等基本概念,可以有效地编写高效、可读的Python代码。无论是初学者还是经验丰富的开发者,Python都提供了丰富的工具和库来满足各种编程需求。
99 13
|
4月前
|
存储 索引 Python
Python 的基本语法
这些是 Python 的基本语法要素,掌握它们是学习和使用 Python 的基础。通过不断地实践和应用,你将能够更深入地理解和熟练运用这些语法知识,从而编写出高效、简洁的 Python 代码
201 61
|
3月前
|
关系型数据库 开发者 Python
Python编程中的面向对象设计原则####
在本文中,我们将探讨Python编程中的面向对象设计原则。面向对象编程(OOP)是一种通过使用“对象”和“类”的概念来组织代码的方法。我们将介绍SOLID原则,包括单一职责原则、开放/封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则有助于提高代码的可读性、可维护性和可扩展性。 ####
|
4月前
|
存储 Python
Python编程入门:理解基础语法与编写简单程序
本文旨在为初学者提供一个关于如何开始使用Python编程语言的指南。我们将从安装Python环境开始,逐步介绍变量、数据类型、控制结构、函数和模块等基本概念。通过实例演示和练习,读者将学会如何编写简单的Python程序,并了解如何解决常见的编程问题。文章最后将提供一些资源,以供进一步学习和实践。
90 1
|
9月前
|
自然语言处理 JavaScript 前端开发
Python高级语法与正则表达式(二)
正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
|
9月前
|
安全 算法 Python
Python高级语法与正则表达式(一)
Python提供了 with 语句的写法,既简单又安全。 文件操作的时候使用with语句可以自动调用关闭文件操作,即使出现异常也会自动关闭文件操作。

热门文章

最新文章