Python面向对象编程01:入门类和对象

简介: 正式的Python专栏第36篇,同学站住,别错过这个从0开始的文章!

前面写了文件的读取和文件处理等其他函数,里面用到了os库。


本来想分享os库,发现这个库可能对于初学者来说比较难,所以后面再等合适的时间谈谈,因为涉及了很多文件系统的操作,比较偏Linux运维。


我们先看看面向对象编程吧,就是很多人口中谈到的OOP(Object-oriented Programming)


什么是面向对象编程?

我们是不是听过面向过程,拿来放在一起对比就比较好理解了。


简单来理解,面向过程就是一切用函数解决一切文件,简单粗暴!


面向对象是面向过程编程之后才出现了,没有面向对象编程很多程序还不是照样开发。


面向对象,也使用函数,但是多了一个网,这个网把一个或者多个函数,和数据关联在一起,然后称为一类事物,也就是程序中的‘类’(class)


定义类,从具体代码来感受吧!

面向对象编程,首先提出的第一个概念就是‘class’,类:


#这就是一个class的定义代码:
class hello_class():
    pass

然后通过class_name() 这样调用来生产对象。

代码稍微升级一下,我们看看:

class hello_class():
    pass
#输出类信息
print(hello_class)
print(type(hello_class))
#创建类的实例对象
print(hello_class())
print(type(hello_class()))

稍微补充一下:

print函数输出类对象的结果:通常是<'class全名‘ object at id序列号>

下面是运行结果:

image.png

这里我们加入新知识点:类实例对象 , 通常直接说,实例。


实例是class产生的对象,所有某个hello_class对象的类型(通过type函数获取)都必定是hello_class。


多个类和对象的观察

看完一个类,我们再看看两个类的对比,结果也是一致的。


下面是两个类的定义和生成对象的代码展示:


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/11/15 11:58 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : __init__.py.py
# @Project : hello
class student(object):
    “”“学委补充一下:__init___ 函数为类的初始化函数,在创建类对象实例的时候这个函数会被调用。”“”
    def __init__(self):
        print("hello, I am student")
class programmer(object):
    def __init__(self):
        print("hello, I am programmer")
class student(object):
    def __init__(self):
        print("hello, I am student")
class programmer(object):
    def __init__(self):
        print("hello, I am programmer")
s1 = student
print(s1)
p1 = programmer
print(p1)
s11 = student
print(s11)
p11 = programmer
print(p11)
print("*" * 16)
# 创建对象
s2 = student()
print(s2)
p2 = programmer()
print(p2)
# 创建对象
s3 = student()
print(s3)
p3 = programmer()
print(p3)

稍微解释一下:


s1 和 p1 这两个变量打印输出结果是‘class’类型的。

s11 和 p11 这两个变量打印输出结果是‘class’类型的,但是s1跟s11,p1跟p11 是不变的。

s2 和 p2 这两个变量打印输出结果是’object’类型的。

s3 和 p3 这两个变量打印输出结果是’object’类型的。\


下面是运行结果:


image.png

初始化函数被调用了打印了对象信息。


到这里,大家应该都能知道class和object区别了吧


类: 描述了函数和属性的固定关系

(类实例)对象: 基于这种固定关系的一个活生生的个体,它的id是变化的。


补充一下类的属性(数据部分)

学委定义了一个student类,并创建了两个学生对象。


直接复制运行下面的代码:


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/11/15 11:58 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷学委
# @XueWeiTag: CodingDemo
# @File : __init__.py.py
# @Project : hello
class student(object):
    def __init__(self, name):
        self.name = name
    def get_name(self):
        return self.name
    def set_name(self, name):
        self.name = name
    def study(self):
        print(f"{self.name} : 好好学习,天天向上!")
s1= student("小白")
print(s1)
print(s1.get_name())
print(s1.study())
s2 = student("学委的学生粉丝:哈哈哈")
print(s2)
print(s2.get_name())
print(s2.study())

我们看到他们的id总是不同的(运行几次看看)。

然后每个学生都有一个name属性(携带姓名数据),和三个函数属性(分别用来获取姓名,改名,学习)。

然后我们调用了每个学生的study函数,输出了各自的学习状态。

image.png

总结

Python语言的简约设计,使得面向对象编程非常简单,轻松就定义和和获取对象了。

上面的代码非常简单,但是可以很好的感受到类和对象的呈现,多练习。

目录
相关文章
|
4天前
|
数据采集 机器学习/深度学习 人工智能
Python编程入门:从零基础到实战应用
【9月更文挑战第15天】本文将引导读者从零开始学习Python编程,通过简单易懂的语言和实例,帮助初学者掌握Python的基本语法和常用库,最终实现一个简单的实战项目。文章结构清晰,分为基础知识、进阶技巧和实战应用三个部分,逐步深入,让读者在学习过程中不断积累经验,提高编程能力。
|
4天前
|
开发框架 缓存 数据库
探索Python中的装饰器:从入门到实践
【8月更文挑战第48天】本文将引导你进入Python装饰器的奇妙世界。不同于传统的“摘要”格式,我们将通过一段代码的演变,直观展示装饰器的魅力。文章不仅介绍基础概念,还将通过实例演示如何自定义装饰器,并探讨其在实际应用中的强大用途。让我们开始吧,一起深入理解这个改变函数行为的强大工具!
|
1天前
|
人工智能 数据挖掘 开发者
Python编程入门:从基础到实战
【9月更文挑战第18天】本文将带你走进Python的世界,从最基本的语法开始,逐步深入到实际的项目应用。无论你是编程新手,还是有一定基础的开发者,都能在这篇文章中找到你需要的内容。我们将通过详细的代码示例和清晰的解释,让你轻松掌握Python编程。
15 5
|
3天前
|
Python
全网最适合入门的面向对象编程教程:Python函数方法与接口-函数与方法的区别和lamda匿名函数
【9月更文挑战第15天】在 Python 中,函数与方法有所区别:函数是独立的代码块,可通过函数名直接调用,不依赖特定类或对象;方法则是与类或对象关联的函数,通常在类内部定义并通过对象调用。Lambda 函数是一种简洁的匿名函数定义方式,常用于简单的操作或作为其他函数的参数。根据需求,可选择使用函数、方法或 lambda 函数来实现代码逻辑。
|
4天前
|
存储 机器学习/深度学习 数据挖掘
深入浅出:Python编程入门与实践
【9月更文挑战第16天】本文以“深入浅出”的方式,引领读者步入Python编程的世界。从基础语法到实际应用,我们将一步步探索Python的魅力所在。无论你是编程新手,还是希望拓展技能的老手,这篇文章都将为你提供有价值的信息和指导。通过本文的学习,你将能够编写出简单而实用的Python程序,为进一步深入学习打下坚实的基础。让我们一起开始这段编程之旅吧!
|
4天前
|
机器学习/深度学习 数据挖掘 程序员
Python编程基础:从入门到实践
【9月更文挑战第16天】本文是一篇Python编程的入门教程,旨在帮助初学者理解Python的基本概念和语法。文章首先介绍了Python的历史和特点,然后详细讲解了Python的基本语法,包括变量、数据类型、运算符、控制结构等。接着,文章通过一些实例代码,展示了如何使用Python进行基本的编程操作,如输入输出、条件判断、循环等。最后,文章还提供了一些学习资源和建议,帮助读者进一步学习和掌握Python编程。
|
5天前
|
存储 程序员 开发者
Python 编程入门:从零基础到编写实用脚本
【9月更文挑战第15天】本文是一篇面向初学者的Python编程入门指南,通过浅显易懂的语言和实际的代码示例,引导读者逐步掌握Python的基本概念、语法规则以及如何运用Python解决实际问题。文章不仅介绍了Python的基础知识点,还通过实例演示了如何将这些知识应用于日常编程任务中,帮助读者快速上手并能够独立编写简单的Python脚本。
|
3天前
|
机器学习/深度学习 数据采集 存储
Python编程入门:从基础到实战
【9月更文挑战第17天】本文将带你进入Python的世界,从最基础的语法开始,逐步深入到实战项目。我们将一起探索Python的强大功能和灵活性,以及如何利用它解决实际问题。无论你是编程新手,还是有一定经验的开发者,都能在这篇文章中找到有价值的内容。让我们一起开启Python的学习之旅吧!
|
3天前
|
存储 程序员 Python
Python编程入门:从零到英雄
【9月更文挑战第16天】本文是一篇针对初学者的Python编程入门指南,旨在帮助读者从零基础开始,通过简单易懂的语言和实例,逐步掌握Python编程的基本知识和技能。文章首先介绍了Python的起源和特点,然后详细讲解了Python的安装、基本语法、数据类型、控制结构、函数、模块等基础知识,最后通过一个简单的项目实例,展示了如何运用所学知识解决实际问题。全文通俗易懂,结构清晰,适合所有对Python感兴趣的读者阅读和学习。
|
6天前
|
Python
Python编程中的异常处理:理解与实践
【9月更文挑战第14天】在编码的世界里,错误是不可避免的。它们就像路上的绊脚石,让我们的程序跌跌撞撞。但是,如果我们能够预见并优雅地处理这些错误,我们的程序就能像芭蕾舞者一样,即使在跌倒的边缘,也能轻盈地起舞。本文将带你深入了解Python中的异常处理机制,让你的代码在面对意外时,依然能保持优雅和从容。
140 73