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语言的简约设计,使得面向对象编程非常简单,轻松就定义和和获取对象了。

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

目录
相关文章
|
8月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
936 7
|
9月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
587 1
|
8月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
1652 1
Python API接口实战指南:从入门到精通
|
8月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
1390 1
|
9月前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
261 4
|
9月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
461 5
|
9月前
|
缓存 供应链 芯片
电子元件类商品 item_get - 商品详情接口深度分析及 Python 实现
电子元件商品接口需精准返回型号参数、规格属性、认证及库存等专业数据,支持供应链管理与采购决策。本文详解其接口特性、数据结构与Python实现方案。
|
9月前
|
数据采集 存储 XML
Python爬虫入门(1)
在互联网时代,数据成为宝贵资源,Python凭借简洁语法和丰富库支持,成为编写网络爬虫的首选。本文介绍Python爬虫基础,涵盖请求发送、内容解析、数据存储等核心环节,并提供环境配置及实战示例,助你快速入门并掌握数据抓取技巧。
|
9月前
|
大数据 数据处理 数据安全/隐私保护
Python3 迭代器与生成器详解:从入门到实践
简介:本文深入解析Python中处理数据序列的利器——迭代器与生成器。通过通俗语言与实战案例,讲解其核心原理、自定义实现及大数据处理中的高效应用。
443 0
|
9月前
|
存储 缓存 安全
Python字典:从入门到精通的实用指南
Python字典如瑞士军刀般强大,以键值对实现高效数据存储与查找,广泛应用于配置管理、缓存、统计等场景。本文详解字典基础、进阶技巧、实战应用与常见陷阱,助你掌握这一核心数据结构,写出更高效、优雅的Python代码。
260 0

推荐镜像

更多