python中的类,对象,成员方法,构造方法,__init__,__lt__,__le__,__eq__

简介: python中的类,对象,成员方法,构造方法,__init__,__lt__,__le__,__eq__

python中的类,对象,成员方法,构造方法,init,lt,le,eq

定义方法

  • class是关键字,表示要定义类了
  • 类的属性,即定义在类中的变量(成员变量)
  • 类的行为,即定义在类中的函数(成员方法)

需要注意的是,在python里面没有私有成员,所以也是没有get,set方法,全是公有成员。

例子演示

__init__(构造方法)

定义一个学生类,然后这个学生类具有学生的基本信息,比如,学号,姓名,性别,年龄,然后这个学生具有eating方法,这个方法会向屏幕打印,“I have eating”的语句。

现在根据上述需求进行代码编写。

定义类的代码, 这里主要需要注意的是,普通成员变量的定义方法,需要通过None进行初始化操作,然后还有python中的构造方法的写法,__init__通过这个方法进行构造方法,然后self,相当于c++里面的this指针

class Student:
    num = None
    age = None
    name = None
    sex = None
    def __init__(self, num, age, name, sex):
        self.num = num
        self.age = age
        self.name = name
        self.sex = sex
    def eating(self):
        print(self.name + " I have eating")

生成对象进行检验测试,这里演示的是,在python中如何定义对象。

if __name__=="__main__":
    student1 = Student(1, 23, "lihua", '男')
    student1.eating()
    student2 = Student(2, 25, "zhangsan", '男')
    student2.eating()

运行结果

__str__ 字符串方法

  • 一般情况,这个是直接回打印出这个对象的地址
class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
if __name__=="__main__":
    stu = Student("李华", 11)
    print(stu)
    print(str(stu))

运行结果

  • 使用__str__之后,使用这个__str__后相当于,是java里面的toString方法。
class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __str__(self):
        return f"student的类对象, name={self.name}, age={self.age}"
if __name__=="__main__":
    stu = Student("李华", 11)
    print(stu)
    print(str(stu))

运行结果

__lt__小于符号比较方法

这里演示python中自定义的,小于符号的编写

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __lt__(self, other):
        return self.age < other.age
if __name__=="__main__":
    stu1 = Student("李华", 11)
    stu2 = Student("张三", 12)
    print(stu1 > stu2)
    print(stu1 < stu2)

运行结果

一般情况下对象之间不可以直接进行对比,但是可以通过编写对比规则来进行对比。

__eq__比较运算符实现方法

演示代码,这里通过重载等于方法,来进行对两个对象的是否相等进行判断功能。

class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __eq__(self, other):
        return self.age == other.age
if __name__=="__main__":
    stu1 = Student("李华", 11)
    stu2 = Student("张三", 12)
    print(stu1 == stu2)
    print(stu1 != stu2)

运行结果

__le__小于等于比较符号方法

这个就交给大家来演示了,就是上面的两个的结合。

相关文章
|
14天前
|
缓存 监控 算法
Python内存管理:掌握对象的生命周期与垃圾回收机制####
本文深入探讨了Python中的内存管理机制,特别是对象的生命周期和垃圾回收过程。通过理解引用计数、标记-清除及分代收集等核心概念,帮助开发者优化程序性能,避免内存泄漏。 ####
28 3
|
1月前
|
开发者 Python
Python中__init__.py文件的作用
`__init__.py`文件在Python包管理中扮演着重要角色,通过标识目录为包、初始化包、控制导入行为、支持递归包结构以及定义包的命名空间,`__init__.py`文件为组织和管理Python代码提供了强大支持。理解并正确使用 `__init__.py`文件,可以帮助开发者更好地组织代码,提高代码的可维护性和可读性。
36 2
|
2月前
|
索引 Python
python-类属性操作
【10月更文挑战第11天】 python类属性操作列举
23 1
|
2月前
|
Java C++ Python
Python基础---类
【10月更文挑战第10天】Python类的定义
27 2
WK
|
2月前
|
Python
Python类命名
在Python编程中,类命名至关重要,影响代码的可读性和维护性。建议使用大写驼峰命名法(如Employee),确保名称简洁且具描述性,避免使用内置类型名及单字母或数字开头,遵循PEP 8风格指南,保持项目内命名风格一致。
WK
21 0
|
2月前
|
程序员 开发者 Python
深度解析Python中的元编程:从装饰器到自定义类创建工具
【10月更文挑战第5天】在现代软件开发中,元编程是一种高级技术,它允许程序员编写能够生成或修改其他程序的代码。这使得开发者可以更灵活地控制和扩展他们的应用逻辑。Python作为一种动态类型语言,提供了丰富的元编程特性,如装饰器、元类以及动态函数和类的创建等。本文将深入探讨这些特性,并通过具体的代码示例来展示如何有效地利用它们。
52 0
|
13天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
12天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
19天前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
131 59
|
12天前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
36 10