20个例题掌握Python类相关知识点

1. 定义一个简单的类

class Dog:def __init__(self, name):self.name = namedef bark(self):print(f"{self.name} says woof!")if __name__ == "__main__":my_dog = Dog("Rex")my_dog.bark()

2. 类的基本属性

class Car:def __init__(self, brand, model):self.brand = brandself.model = modeldef display_info(self):print(f"Brand: {self.brand}, Model: {self.model}")if __name__ == "__main__":my_car = Car("Toyota", "Corolla")my_car.display_info()

3. 类方法

class Circle:pi = 3.14def __init__(self, radius):self.radius = radiusdef area(self):return Circle.pi * self.radius * self.radiusif __name__ == "__main__":circle = Circle(5)print("Area:", circle.area())

4. 类变量和实例变量

class Employee:company_name = "ABC Corp"def __init__(self, name, age):self.name = nameself.age = agedef display_employee(self):print(f"Name: {self.name}, Age: {self.age}, Company: {Employee.company_name}")if __name__ == "__main__":emp = Employee("John", 30)emp.display_employee()

5. 类的继承

class Animal:def __init__(self, name):self.name = namedef speak(self):print("Animal sound")class Dog(Animal):def speak(self):print(f"{self.name} says woof!")if __name__ == "__main__":dog = Dog("Buddy")dog.speak()

6. 多重继承

class Walking:def walk(self):print("Walking")class Talking:def talk(self):print("Talking")class Robot(Walking, Talking):passif __name__ == "__main__":robot = Robot()robot.walk()robot.talk()

7. 使用super()调用父类方法

class Person:def __init__(self, name, age):self.name = nameself.age = agedef display(self):print(f"Name: {self.name}, Age: {self.age}")class Student(Person):def __init__(self, name, age, student_id):super().__init__(name, age)self.student_id = student_iddef display(self):super().display()print(f"Student ID: {self.student_id}")if __name__ == "__main__":student = Student("Alice", 20, "S12345")student.display()

8. 类的封装

class Account:def __init__(self):self.__balance = 0def deposit(self, amount):if amount > 0:self.__balance += amountelse:print("Invalid amount")def get_balance(self):return self.__balanceif __name__ == "__main__":acc = Account()acc.deposit(100)print("Balance:", acc.get_balance())

9. 静态方法

class MathOperations:@staticmethoddef add(a, b):return a + bif __name__ == "__main__":result = MathOperations.add(5, 3)print("Addition:", result)

10. 类方法

class Book:total_books = 0def __init__(self, title):self.title = titleBook.total_books += 1@classmethoddef get_total_books(cls):return cls.total_booksif __name__ == "__main__":book1 = Book("Python for Beginners")book2 = Book("Advanced Python")print("Total books:", Book.get_total_books())

11. 类的多态

class Shape:def area(self):passclass Rectangle(Shape):def __init__(self, width, height):self.width = widthself.height = heightdef area(self):return self.width * self.heightclass Circle(Shape):def __init__(self, radius):self.radius = radiusdef area(self):return 3.14 * self.radius * self.radiusif __name__ == "__main__":rect = Rectangle(3, 4)circ = Circle(5)shapes = [rect, circ]for shape in shapes:print("Area:", shape.area())

12. 操作符重载

class ComplexNumber:def __init__(self, real, imag):self.real = realself.imag = imagdef __add__(self, other):return ComplexNumber(self.real + other.real, self.imag + other.imag)def __str__(self):return f"{self.real} + {self.imag}i"if __name__ == "__main__":c1 = ComplexNumber(1, 2)c2 = ComplexNumber(3, 4)c3 = c1 + c2print("Sum:", c3)

13. 抽象类

from abc import ABC, abstractmethodclass Animal(ABC):@abstractmethoddef make_sound(self):passclass Dog(Animal):def make_sound(self):print("Woof")if __name__ == "__main__":dog = Dog()dog.make_sound()

14. 私有变量和方法

class MySecret:def __init__(self):self.__secret = "hidden value"def reveal_secret(self):print("Secret:", self.__secret)if __name__ == "__main__":obj = MySecret()obj.reveal_secret()# print(obj.__secret)  # This will raise an AttributeError

15. 类的组合

class Engine:def start(self):print("Engine started")class Car:def __init__(self, engine):self.engine = enginedef start(self):self.engine.start()if __name__ == "__main__":engine = Engine()car = Car(engine)car.start()

16. 属性装饰器

class Temperature:def __init__(self, celsius):self.__celsius = celsius@propertydef fahrenheit(self):return (self.__celsius * 9/5) + 32if __name__ == "__main__":temp = Temperature(0)print("Fahrenheit:", temp.fahrenheit)

17. 析构方法

class Person:def __init__(self, name):self.name = nameprint(f"Person {self.name} created")def __del__(self):print(f"Person {self.name} destroyed")if __name__ == "__main__":p = Person("John")del p

18. 类的方法链调用

class Chain:def step_one(self):print("Step one")return selfdef step_two(self):print("Step two")return selfif __name__ == "__main__":obj = Chain()obj.step_one().step_two()

19. 自反性

class Reflexive:def __init__(self, value):self.value = valuedef __eq__(self, other):if isinstance(other, Reflexive):return self.value == other.valuereturn Falseif __name__ == "__main__":a = Reflexive(10)b = Reflexive(10)print("Are they equal?", a == b)

20. 类的例外处理

class NegativeAgeError(Exception):def __init__(self, message="Age cannot be negative"):self.message = messagesuper().__init__(self.message)class Person:def __init__(self, name, age):self.name = nameif age < 0:raise NegativeAgeError()self.age = ageif __name__ == "__main__":try:p = Person("John", -1)except NegativeAgeError as e:print(e)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/16654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

npm build报错Cannot find module ‘html-webpack-plugin‘解决方法

目录 一、问题描述二、问题原因三、解决方法 一、问题描述 npm build 报错&#xff1a; ERROR Error: Cannot find module html-webpack-pluginRequire stack:- D:\Workspaces\WebstormProjects\yy-cloud\ruoyi-ui\node_modules\script-ext-html-webpack-plugin\lib\plugin.j…

如何在已有Docker环境中安装包

1. 只在container中一次性安装&#xff0c;不影响image 首先启动容器&#xff0c;然后进入容器 docker-compose exec <service_name> bash其中&#xff0c;<service_name>可以通过以下命令查询&#xff08;前提是要先启动容器&#xff09; docker-compose ps进入…

【Spring】Spring主要知识点目录整理

1. Spring框架概述 作者相关文章链接&#xff1a; 1、【Spring】SpringFrameWork框架简介-CSDN博客 2、【Spring】设计模式(GOF)-CSDN博客 3、【Spring】spring入门程序-CSDN博客 定义&#xff1a;Spring是一个轻量级的Java开发框架&#xff0c;旨在解决企业级应用开发的业…

2024/5/27 ARMday10 PWM实验蜂鸣器发声

TIM4.c #include "tim4.h" void tim4_init() {//1.设置tim4&#xff0c;GPIOB时钟使能RCC->MP_AHB4ENSETR | (0x1<<1);RCC->MP_APB1ENSETR | (0x1<<2);//2.设置PB6引脚为复位功能GPIOB->MODER & (~(0x3<<12));GPIOB->MODER | (0x…

【mybatis解决oracle查询in超过1000条数据】

1、因为代码中前人未考虑in 数据可能大于1000&#xff0c;导致现在系统报错&#xff0c;MPP low前人 直接上sql select * from table a <where><if test"list ! null and list.size > 0">and a.name in<foreach collection"list" inde…

【EI会议】2024年互联网技术与环境工程国际会议(IACITEE 2024)

【EI会议】2024年互联网技术与环境工程国际会议&#xff08;IACITEE 2024&#xff09; 2024 International Conference on Internet Technology and Environmental Engineering 互联网技术与环境工程国际会议&#xff08;IACITEE 2024&#xff09;将在重庆举行&#xff0c;主…

DataGrip测试连接时出现报错解决方案

&#xff08;一&#xff09;报错情况描述&#xff1a; DBMS: MySQL (无版本) 区分大小写: 普通形式mixed&#xff0c;分隔形式exact Connection refused: connect. &#xff08;二&#xff09;解决方案&#xff1a; 1、 首先打开命令指示符&#xff0c;选择以管理员身份运行。…

spring boot添加License(软件许可)

文章目录 前言1. 生成钥匙库2. 生成证书3. 生成公匙库4.业务代码1. 引入依赖2. 关键代码3. 配置文件 5、改成线上地址&#xff0c;这样不用每次打包&#xff0c;发送license.lic文件给客户&#xff0c;重启项目就行5.1、工具类5.2 修改部分&#xff1a; 总结 前言 工作需要给软…

Activity启动流程要点

一、Activity启动流程 Activity的启动流程一般是通过调用startActivity或者是startActivityForResult来开始的startActivity内部也是通过调用startActivityForResult来启动Activity&#xff0c;只不过传递的requestCode小于0Activity的启动流程涉及到多个进程之间的通讯这里主…

vue 如果有某个子元素就给父元素加样式,或者通过子元素显示来判断父元素是否显示

有这样一个场景&#xff0c;父元素是一个 div&#xff0c;然后里边有多个子元素&#xff0c;同时父元素上添加了很多样式 需求是&#xff1a;如果有子元素&#xff0c;那么就显示父元素&#xff0c;如果没有一个子元素&#xff0c;则父元素也不显示 代码结构&#xff1a; <…

【vue-5】双向数据绑定v-model及修饰符

单向数据绑定&#xff1a;当数据发生改变时&#xff0c;视图会自动更新&#xff0c;但当用户手动更改input的值&#xff0c;数据不会自动更新&#xff1b; 双向数据绑定&#xff1a;当数据发生改变时&#xff0c;视图会自动更新&#xff0c;但当用户手动更改input的值&#xf…

鸿蒙原生应用元服务开发-WEB跨应用跳转

Web组件可以实现点击前端页面超链接跳转到其他应用。 在下面的示例中&#xff0c;点击call.html前端页面中的超连接&#xff0c;跳转到电话应用的拨号界面。 应用侧代码。 // xxx.ets import web_webview from ohos.web.webview; import call from ohos.telephony.call;Entr…

Vue基础(数据绑定、export使用)

1、简介 在使用vue开发的过程中&#xff0c;经常会遇到一些容易混淆的问题&#xff0c;因此&#xff0c;在本文中进行汇总操作&#xff0c;只有通过不断总结学习&#xff0c;才能更好掌握vue的使用&#xff08;每天进步一点&#xff09;。 2、数据绑定 在js中定义数据&#xf…

音乐编曲软件哪个好用 studio one和fl studio哪个好

编曲软件的出现&#xff0c;打破了时间与空间的限制&#xff0c;使得创作者能随时随地进行音乐创作。随着信息时代的发展&#xff0c;使用编曲软件进行音乐创作已经成为业界主流。业内常用的有Cubsae、LogicPro、Studio One、Ableton live等&#xff0c;这次教程我将为大家解读…

HTTP 协议的基本格式和Fidder的简单使用

HTTP协议诞生于1996&#xff08;开玩笑哈&#xff0c;诞生于1991年&#xff09;&#xff0c;http协议用于网页和手机app和服务器交互的场景。通过HTTP协议&#xff0c;客户端&#xff08;例如网页浏览器或手机应用&#xff09;可以向服务器发送请求&#xff0c;服务器则会响应这…

大数据开发面试题【Hadoop篇】

1、Hadoop特点 hadoop是一个分布式计算平台&#xff0c;能够允许使用编程模型在集群上对大型数据集进行分布式处理 hadoop的三大组件&#xff1a;HDFS&#xff08;分布式文件存储平台&#xff09;、MR&#xff08;计算引擎&#xff09;、YARN&#xff08;资源调度平台&#xf…

苹果手机突然白屏无反应怎么办?白屏修复办法分享!

苹果手机突然白屏无反应怎么办&#xff1f;下面小编就来给大家分享苹果手机突然白屏的原因和修复办法。 一般造成苹果手机出现白屏的原因如下&#xff1a; 系统问题&#xff1a;iOS系统的故障是导致苹果设备白屏无反应最常见的原因之一。例如&#xff0c;系统更新失败、应用冲…

TI_DSP_F2808学习笔记3: ePWM

共有6组ePWM&#xff0c;每一组 ePWM 模块都包含以下 7 个模块&#xff1a;时基模块 TB、计数比较模块 CC、动作模块 AQ、死区产生模块 DB、PWM 斩波模块 PC、错误联防模块 TZ、时间触发模块 ET。 时基模块 TB 确定PWM的周期和相位。 1&#xff09;PWM 时基计数器&#xff…

R18 NTN中的RACH-less HO

在看R18 38.300时,发现NTN场景 增加了如下黄色字体的内容,R18 NTN支持了RACH-less HO,索性就简单看了看。 NTN RACH less HO相关的描述主要在38.331,38.213和38.321中。38.300中的描述显示:网络侧会通过RRCReconfiguration消息将RACH-less HO相关的配置下发给UE, 其中会包…

【SpringCloud】负载均衡

目录 负载均衡什么是负载均衡生活场景为什么需要负载均衡负载均衡手段负载均衡总的来说有两种实现手段负载均衡具体可以通过多种手段来实现 SpringCloud中的负载均衡组件Ribbon VS Nginx负载均衡区别集中式LB进程内LB RibbonRibbon的工作原理Ribbon在工作时分成两步 使用1.提供…