python面向对象案例汇总(代码片段)

ShenLiang2025 ShenLiang2025     2022-11-28     739

关键词:

Python面向对象案例汇总

简介

Python是一门面向对象的语言,用这种思想为指导设计的程序,把数据和对数据的操作封装在一起组成类,通过类来创建对象,通过对象之间的交互来实现程序的功能。

定义个空的类

class FirstClass:
    pass
if __name__ == '__main__':
    c = FirstClass()
    print(c)

#结果
<__main__.FirstClass object at 0x0000022128E17F70>

定义个学生类(仅属性)

class Student:
    # 构造方法(初始化),这里传入name和age两个参数
    def __init__(self,name,age):
        self.name=name
        self.age=age

if __name__ == '__main__':
    s = Student('沈亮',30);
    #显示对象内存地址
    print(s)
    # 访问对象里的name和age属性
    print("您的年龄是:岁".format(s.name,s.age))

#结果
<__main__.Student object at 0x0000022C7CAF7700>
沈亮您的年龄是:30岁

定义个学生类(属性及方法)

class Student:
    # 构造方法(初始化),这里传入name和age两个参数
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def sayInfo(self): #通过对象里的方法访问name和age属性
        print("您的年龄是:岁".format(s.name, s.age))

if __name__ == '__main__':
    s = Student('沈亮',30);
    #显示对象内存地址
    print(s)
    # 访问对象方法
    s.sayInfo()

#结果
<__main__.Student object at 0x000001C7F6A47700>
沈亮您的年龄是:30岁

方法内嵌套类

#方法里嵌套Converter类,如果该对象不存在则创建,最终函数通过Converter对象里的convert方法返回(完成分数和等级的转换)
def score2level(score,converter=None):
    class Converter:
        def convert(self,score):
            level='C'
            if score>=80:
                level='A'
            elif 60<score <80:
                level = 'B'
            return level
    if not converter:
        c = Converter()
    return c.convert(score)




if __name__ == '__main__':
    score=75
    print("您的分数是0,对应的等级是1".format(score,score2level(score)))

#结果
您的分数是75,对应的等级是B

计算二维平面里点到点距离

import math
class Point:

    #初始化点的坐标,默认在原点(即x=0,y=0)
    def __init__(self,x=0,y=0):
        self.move(x,y)
    #设置点的坐标为(x,y)
    def move(self,x,y):
        self.x=x
        self.y=y

    #将点的坐标重置到(0,0)
    def reset(self):
        self.move(0,0)
    #计算两点之间的距离(勾股定理)
    def calculateDistance(self,otherPoint):
        return math.sqrt(pow((self.x-otherPoint.x),2)+pow((self.y-otherPoint.y),2))


if __name__ == '__main__':
    point1 = Point(3,0)
    point2 = Point(0,4)
    #计算点point1和点point2的距离
    print(point1.calculateDistance(point2))
    #计算点point3=的横坐标x、纵坐标y
    point3=Point(4,6)
    print(point3.x, point3.y)
    #重置点point3,即作为为坐标原点
    point3.reset()
    print(point3.x,point3.y)

#结果
5.0
4 6
0 0

私有属性及私有方法

class Student:
    # 构造方法(初始化),这里传入name、age、__level三个参数,其中__level是私有属性
    def __init__(self,name,age,level):
        self.name=name
        self.age=age
        self.__level=level
    def sayInfo(self): #通过对象里的方法访问name和age属性
        print("您的年龄是:岁".format(self.name, self.age))   
    #定义私有方法    
    def __getLevel(self):
        print("您的等级是:".format(self.name, self._Student__level))

if __name__ == '__main__':
    s= Student('ShenLiang',25,'A')
    #访问私有方法时,需要加_类名__方法名
    s._Student__getLevel()
	
#结果
ShenLiang您的等级是:A	

查看对象的自定义属性及其值

class Student:
    # 构造方法(初始化),这里传入name、age、__level三个参数,其中__level是私有属性
    def __init__(self,name,age,level):
        self.name=name
        self.age=age
        self.__level=level
    def sayInfo(self): #通过对象里的方法访问name和age属性
        print("您的年龄是:岁".format(self.name, self.age))
    #定义私有方法
    def __getLevel(self):
        print("您的等级是:".format(self.name, self._Student__level))

if __name__ == '__main__':
    s= Student('ShenLiang',25,'A')
    # 输出类里用户自定义的属性、方法
    print([v for v in dir(s) if not v.startswith('__')])

    # 输出对象里用户自定义的属性及其值
    for item in vars(s):
        print(item,":",vars(s)[item])

#结果
['_Student__getLevel', '_Student__level', 'age', 'name', 'sayInfo']
name : ShenLiang
age : 25
_Student__level : A

类变量及类方法的使用

class Student:
    cnt =0
    # 初始化方法
    def __init__(self,name,score,level):
        self.name = name
        self.score = score
        self.__level = level
        Student.cnt +=1
    def sayScore(self): #对象方法操作对象属性
        print("0\\t的分数是:1".format(self.name,self.__level))

    def __getLevel(self): #私有方法的定义
        print("0当前的等级是:".format(self.name,self.__level))

    @classmethod #类方法操作类属性
    def printCnt(cls):
        print(cls.cnt)
if __name__ == '__main__':
    s1=Student('Shenliang',30,'A')
    s2=Student('Liangshen',20,'B')
    print('当前学生数:\\t',Student.cnt)
    print("对象方式调用:") #s1和s2对象调结果都是2
    s1.printCnt() #s2.printCnt()

#结果
当前学生数:	 2
对象方式调用:
2

静态变量的使用

class Student:
    cnt =0
    # 初始化方法
    def __init__(self,name,score,level):
        self.name = name
        self.score = score
        self.__level = level
        Student.cnt +=1
    def sayScore(self): #对象方法操作对象属性
        print("0\\t的分数是:1".format(self.name,self.__level))

    def __getLevel(self): #私有方法的定义
        print("0当前的等级是:".format(self.name,self.__level))

    @classmethod #类方法操作类属性
    def printCnt(cls):
        print(cls.cnt)
    @staticmethod
    def add(a,b):
        return(a+b)

if __name__ == '__main__':
    s1=Student('Shenliang',30,'A')
    s2=Student('Liangshen',20,'B')
    print('两数相加的结果是:\\t',Student.add(20,30))

注:静态方法不可以操作对象实例属性及方法。

属性装饰器

class Student:
    cnt =0
    # 初始化方法
    def __init__(self,name,score,level):
        self.name = name
        self.score = score
        self.__level = level
        Student.cnt +=1
    def sayScore(self): #对象方法操作对象属性
        print("0\\t的分数是:1".format(self.name,self.__level))

    def __getLevel(self): #私有方法的定义
        print("0当前的等级是:".format(self.name,self.__level))

    @property
    def level(self):
        return self.__level

if __name__ == '__main__':
    s1=Student('Shenliang',30,'C')
    print("0您的等级是1".format(s1.name,s1.level))

#结果
Shenliang您的等级是C

python面向对象案例汇总(代码片段)

Python面向对象案例汇总简介Python是一门面向对象的语言,用这种思想为指导设计的程序,把数据和对数据的操作封装在一起组成类,通过类来创建对象,通过对象之间的交互来实现程序的功能。定义个空的类classFi... 查看详情

python最强知识点整理:面向对象封装案例(代码片段)

面向对象封装案例目标封装小明爱跑步存放家具01.封装封装是面向对象编程的一大特点面向对象编程的第一步——将属性和方法封装到一个抽象的类中外界使用类创建对象,然后让对象调用方法对象方法的细节都被封装在类... 查看详情

python面向对象:面向对象(oop)基本概念类和对象基础语法封装案例私有属性和私有方法(代码片段)

一、面向对象(OOP)基本概念面向对象编程——ObjectOrientedProgramming简写OOP目标了解面向对象基本概念01.面向对象基本概念我们之前学习的编程方式就是面向过程的面相过程和面相对象,是两种不同的编程方式对比面向过程的特... 查看详情

python基础汇总003--python面向对象即类(class)相关的知识点汇总---类的定义对象的创建和使用类的属性和方法(代码片段)

...么通过类创建出来的小明、小王就叫对象。(1)类的定义在Python中使用class关键字定义一个类 查看详情

python面向对象微案例_钻石问题与super(代码片段)

Python面向对象微案例_钻石问题与super钻石问题子类继承多个父类且在子类里调用在父类及基类里都重写的方法时的执行会出现基类被调用多次(两次及以上)。因为子类及父类、基类的继承关系形如钻石,因此该问题又称之为... 查看详情

python之面向对象知识点汇总(小白必会)(代码片段)

目录Python基础之面向对象一、编程思想1、面向过程2、面向对象二、类与对象的创建1、类的语法结构2、定义与调用3、给对象添加独有属性4、对象独有属性修改三、动态、静态方法1、直接在类中定义的函数2、绑定给类的函数3、... 查看详情

python基础篇:面向对象案例实操(代码片段)

...xff0c;同时也通过这些案例为大家讲解如何运用之前学过的Python知识。目录前言经典案例1:扑克游戏。经典案例2:工资结算系统。总结经典案例1:扑克游戏。说明:简单起见,我们的扑克只有52张牌(没有... 查看详情

python基础篇:面向对象案例实操(代码片段)

...xff0c;同时也通过这些案例为大家讲解如何运用之前学过的Python知识。目录前言经典案例1:扑克游戏。经典案例2:工资结算系统。总结经典案例1:扑克游戏。说明:简单起见,我们的扑克只有52张牌(没有... 查看详情

python基础篇:面向对象案例实操(代码片段)

...xff0c;同时也通过这些案例为大家讲解如何运用之前学过的Python知识。目录前言经典案例1:扑克游戏。经典案例2:工资结算系统。总结经典案例1:扑克游戏。说明:简单起见,我们的扑克只有52张牌(没有... 查看详情

python文件操作与面向对象(代码片段)

Python文件操作与面向对象一、文件备份案例1、实例代码#1、接收用户输入的文件名(要备份的文件名)oldname=input(请输入要备份的文件名称:)#python.txt#2、规划备份文件名(python[备份].txt)#搜索点号index=oldname.rfind(.)#返回文件名... 查看详情

python面向对象基础(代码片段)

目录1面向对象2类和对象2.1理解类和对象2.1.1类2.1.2对象2.2面向对象实现方法2.2.1定义类2.2.2创建对象2.2.3self3添加和获取对象属性3.1类外面添加对象属性3.2类外面获取对象属性3.3类里面获取对象属性4魔法方法4.1__init__()4.1.1体验__init... 查看详情

复习面向对象---员工案例(代码片段)

Employee.javapackagecom.yikuan.cn;/***定义员工类,内容:都是所有子类的共性抽取,姓名、工号、工作方法*@authorAdministrator**/publicabstractclassEmployee/*姓名*/privateStringname;/*工号*/privateStringID;/*定义工作方法,由于工作内容不同,所有定义... 查看详情

03-面向对象封装案例(代码片段)

目标封装小明爱跑步存放家具封装封装是面向对象编程的一大特点面向对象编程的第一步——将属性和方法封装到一个抽象的类中外界使用类创建对象,然后让对象调用方法对象方法的细节都被封装在类的内部小明爱跑步需求小... 查看详情

面向对象案例——贪吃蛇游戏(代码片段)

...案例——贪吃蛇。在这个简单的案例里可以体会javaScript面向对象开发相关模式,学习使用面向对象的方式分析问题。1.功能实现1.1搭建页面:放一个容器盛放游戏场景div#map,设置样式<divclass="map"id="map"></div>1<style>2#m... 查看详情

javascript面向对象游戏案例:贪吃蛇(代码片段)

...avaScript相关的内容我们已经更新了:如何掌握JavaScript面向对象开发相关模式?JavaScript创建对象简单方式到优化还有一个小案例:JavaScript如何实现鼠标悬浮适表格对应行变色?​​​​​​JavaScript高级,构造... 查看详情

python面向对象:面向对象(oop)基本概念类和对象基础语法封装案例私有属性和私有方法(代码片段)

一、面向对象(OOP)基本概念面向对象编程——ObjectOrientedProgramming简写OOP目标了解面向对象基本概念01.面向对象基本概念我们之前学习的编程方式就是面向过程的面相过程和面相对象,是两种不同的编程方式对比面向过程的特... 查看详情

面向对象(代码片段)

...被称为方法(函数)案例改造——给对象增加属性在 Python 中,要 给对象设置属性,非常的容易,但是不推荐使用只需要在 类的外部的代码 中直接通过 . 设置一个属性即可因为:对象属性的封装应该... 查看详情

面向对象案例-学生信息管理系统v1.1(代码片段)

1.学生类packagecom.qfedu.student.entity;/***学生类实体**@authorGGGXXC**/publicclassStudentprivateintid;privateStringname;privateintage;privatechargender;privatefloatscore;publicStudent()publicStudent(Strin 查看详情