python中的类和对象

简介: 类(class):多个类似事物组成的群体统称,能够帮我们快速理解和判断事物的性质。对象(object):类的具体化 Python中一切皆对象,创建对象称为类的实例化

Python类和对象

一、两大编程思想

1.面向过程

面向过程:事物比较简单,可以用线性思维取解决( 宏观上

2.面向对象

面向对象:事物比较复杂,使用简单线性思维无法解决( 细节上

共同点:面向过程和面向对象都是解决实际问题的一种思维方式

二者相辅相成,并不是独立的,解决复杂问题,通过面向对象便于我们从宏观上把握事物之间复杂关系,方便我们分析整个系统;具体到微观操作,仍然使用面向过程来处理

二、类和对象

1.类

类(class):多个类似事物组成的群体统称,能够帮我们快速理解和判断事物的性质。

数据类型:
1.不同数据类型属于不同的类
2.使用内置函数type查看数据类型

2.对象

对象(object):类的具体化 Python中一切皆对象,创建对象称为类的实例化

3.类的创建

创建类的语法:

class 类名:
    pass

类的组成:

  1. 类属性 类中方法外的变量,被该类的所有对象所共享
  2. 实例方法 方法必须有第一个形参,通常叫做self
  3. 静态方法 使用@staticmethod修饰,使用类名直接访问的方法
  4. 类方法 使用@calassmethod修饰,使用类名直接访问的方法

类的创建:

# -*- coding: utf-8 -*-
# @File  : demo.py
# @author: Flyme awei 
# @email : Flymeawei@163.com
# @Time  : 2022/8/15 21:24

# 类的创建
class Student:  # Student 类名 由一个或多个单词组成,每个单词首字母大写,其余字母小写  Student称为类对象
    native_pace = '天津'  # 类属性
    name = '李华'  # 直接写在类里的变量(类中方法外的变量),称为 类属性:类中方法外的变量,被该类的所有对象所共享
    age = 30  # 类属性

    def __init__(self, name, age):  # 初始化方法方法
        self.name = name  # self.name 称为实例属性,进行了一次赋值操作,将局部变量name的值赋给实例属性
        self.age = age

    def eat(self):  # 实例方法  方法必须有第一个形参,通常叫做 'self'
        print('学生在吃饭')

    @staticmethod  # 静态方法
    def se():  # 在静态方法中不能写 self
        print('静态方法')

    @classmethod  # 类方法
    def cm(cls):
        print('类方法')

# Python中一切皆对象,类Student也是对象
print(id(Student))  # 有内存空间
print(type(Student))  # 类型
print(Student)  # 值

在这里插入图片描述

4.对象的创建

对象的创建又称类的实例化
意义:有了实例 就可以调用类中的内容

语法:

实例名(对象名) = 类名()
# 创建对象
stu1 = Student('张三', 20)  # # 创建Student类的对象  stu1叫做实例对象
# 对象三要素
print(id(stu1))  # id标识
print(type(stu1))  # type类型
print(stu1)  # value值

5.方法调用

类属性,类方法,静态方法都是使用 类名.方法名调用
实例方法采用 对象名.方法名调用
# 调用方法
stu1.eat()  # 对象名.方法名  调用Student类中的eat方法
print(stu1.name)
print(stu1.age)
stu1.eat()  # 对象名.方法()   stu1-->实际上就是方法定义处的self  调用Student类中的eat方法

print('----------类属性的使用方式----------')
print(Student.name)
stu2 = Student('张三', 20)
stu3 = Student('李四', 20)
print(Student.native_pace)
Student.native_pace = '吉林'
print(stu2.native_pace)
print(stu3.native_pace)
print(stu2.name, stu2.age)
print(stu3.name, stu3.age)

print('----------类方法的使用方式----------')
Student.cm()

print('----------静态方法的使用方式----------')
Student.se()

在这里插入图片描述

6.为对象动态绑定属性和方法

动态绑定属性: 对象名.属性 = "值"
动态绑定方法: 对象名.方法名 = 方法名
# -*- coding: utf-8 -*-
# @File  : 动态绑定属性和方法.py
# @author: Flyme awei 
# @email : Flymeawei@163.com
# @Time  : 2022/8/15 22:25


class Student:
    def __init__(self, name, age):  # 初始化方法
        self.name = name  # 将局部变量 name的值赋给实例属性self.name,为所有对象所共享
        self.age = age  # 局部变量 age的值赋给实例属性self.age

    def eat(self):  # 实例方法
        print("{}在吃饭".format(self.name))


# 创建对象
stu1 = Student('张三', 18)
stu2 = Student('李四', 20)

print(id(stu1))  # 2502200745408
print(id(stu2))  # 2502201262576

print("------------为对象stu1动态绑定性别属性----------")
stu1.gender = '女'
print(stu1.name, stu1.age, stu1.gender)  #张三 18 女
print(stu2.name, stu2.age)  # 李四 20

stu1.eat()
stu2.eat()


def fun():  # 在类外面定义函数fun
    print('定义在类外的称为函数')


print("-----------为stu1动态绑定方法-----------")
stu1.fun = fun
stu1.fun()
# stu2.fun()

在这里插入图片描述

相关文章
|
1月前
|
存储 数据处理 Python
Python如何显示对象的某个属性的所有值
本文介绍了如何在Python中使用`getattr`和`hasattr`函数来访问和检查对象的属性。通过这些工具,可以轻松遍历对象列表并提取特定属性的所有值,适用于数据处理和分析任务。示例包括获取对象列表中所有书籍的作者和检查动物对象的名称属性。
33 2
|
20天前
|
数据采集 存储 XML
python实战——使用代理IP批量获取手机类电商数据
本文介绍了如何使用代理IP批量获取华为荣耀Magic7 Pro手机在电商网站的商品数据,包括名称、价格、销量和用户评价等。通过Python实现自动化采集,并存储到本地文件中。使用青果网络的代理IP服务,可以提高数据采集的安全性和效率,确保数据的多样性和准确性。文中详细描述了准备工作、API鉴权、代理授权及获取接口的过程,并提供了代码示例,帮助读者快速上手。手机数据来源为京东(item.jd.com),代理IP资源来自青果网络(qg.net)。
|
1月前
|
缓存 监控 算法
Python内存管理:掌握对象的生命周期与垃圾回收机制####
本文深入探讨了Python中的内存管理机制,特别是对象的生命周期和垃圾回收过程。通过理解引用计数、标记-清除及分代收集等核心概念,帮助开发者优化程序性能,避免内存泄漏。 ####
56 3
|
3月前
|
索引 Python
python-类属性操作
【10月更文挑战第11天】 python类属性操作列举
37 1
|
3月前
|
Java C++ Python
Python基础---类
【10月更文挑战第10天】Python类的定义
33 2
WK
|
3月前
|
Python
Python类命名
在Python编程中,类命名至关重要,影响代码的可读性和维护性。建议使用大写驼峰命名法(如Employee),确保名称简洁且具描述性,避免使用内置类型名及单字母或数字开头,遵循PEP 8风格指南,保持项目内命名风格一致。
WK
30 0
|
3月前
|
程序员 开发者 Python
深度解析Python中的元编程:从装饰器到自定义类创建工具
【10月更文挑战第5天】在现代软件开发中,元编程是一种高级技术,它允许程序员编写能够生成或修改其他程序的代码。这使得开发者可以更灵活地控制和扩展他们的应用逻辑。Python作为一种动态类型语言,提供了丰富的元编程特性,如装饰器、元类以及动态函数和类的创建等。本文将深入探讨这些特性,并通过具体的代码示例来展示如何有效地利用它们。
69 0
|
3月前
|
Python
Python中的类(一)
Python中的类(一)
25 0
|
3月前
|
Python
Python中的类(一)
Python中的类(一)
21 0
|
3月前
|
Python
Python中的类(二)
Python中的类(二)
27 0