当前位置: 首页 > wzjs >正文

秦皇岛乾兴建设工程山东网站排名优化公司

秦皇岛乾兴建设工程,山东网站排名优化公司,网站做自动群发百度搜录,网站开发常用图标今天咱们探讨面向对象编程(Object-Oriented Programming,简称OOP)的七大核心概念,看看在Python这个强大的编程语言里,它们是如何被精彩呈现的,还有超多有趣的示例代码哦,保证让你轻松理解&#…

今天咱们探讨面向对象编程(Object-Oriented Programming,简称OOP)的七大核心概念,看看在Python这个强大的编程语言里,它们是如何被精彩呈现的,还有超多有趣的示例代码哦,保证让你轻松理解,一起来吧!
在这里插入图片描述

一、面向对象编程:一场现实与代码的奇妙对接

想象一下,我们生活的世界充满了各种各样的实体,比如人、动物、汽车等等。面向对象编程呢,就像是一个神奇的魔法,它能把这些现实世界里的实体变成代码中的一个个“小世界”,也就是对象啦。而这些对象之间相互协作、互动,就能让我们的程序像一个热闹的小社会一样运转起来。这其中,有七个核心概念可是关键中的关键哦,它们通常被称为“四大特性”和“三大支柱”呢。

二、四大特性:让代码更具魅力的魔法元素

  1. 封装(Encapsulation):数据与操作的神秘结界
    封装呀,就像是给对象穿上了一层神秘的外衣,把数据(也就是属性)和操作这些数据的方法(也就是函数啦)紧紧地捆绑在一起。这层外衣可不是随便穿穿的哦,它通过访问修饰符(比如public、private、protected)来限制外面的世界对对象内部数据的窥探呢。在Python里,虽然没有像其他语言那样严格的访问修饰符,但我们也有自己的小妙招哦。比如说下面这个例子:
class BankAccount:def __init__(self, balance):self.__balance = balance  # 这里的__balance就是类似私有属性哦,外面不能直接访问def deposit(self, amount):self.__balance += amountdef withdraw(self, amount):if amount > self.__balance:print("Insufficient balance.")else:self.__balance -= amountdef get_balance(self):return self.__balance

看,__balance这个属性就被很好地“封装”起来啦,外面的代码不能随便修改它,只能通过depositwithdrawget_balance这些方法来间接操作呢,是不是很神奇呀?

  1. 继承(Inheritance):代码世界里的家族传承
    继承就像是家族传承一样,允许一个类(我们叫它子类或者派生类)去继承另一个类(就是父类或者基类)的属性和方法哦。这样一来,子类就能站在父类的肩膀上,继承父类的强大功能,然后还可以根据自己的需要进行扩展或者修改呢。在Python里,实现继承可简单啦,就像这样:
class Animal:def __init__(self, name):self.name = namedef speak(self):raise NotImplementedError("Subclass must implement abstract method")class Dog(Animal):def speak(self):return f"{self.name} says Woof!"

这里Dog类就是Animal类的子类啦,它继承了Animal类的name属性和__init__方法呢,然后还自己重写了speak方法,让狗狗能说出“Woof!”,是不是超有趣呀?

  1. 多态(Polymorphism):同一个消息,不同的精彩回应
    多态呢,就像是一场精彩的表演秀,不同的对象对同一个消息能做出完全不同的精彩回应哦。在Python中,这通常是通过方法的重载和覆盖、接口和抽象类来实现的呢,这样可以让我们的代码更加灵活和容易维护哦。看看下面这个例子吧:
class Animal:def __init__(self, name):self.name = namedef speak(self):raise NotImplementedError("Subclass must implement abstract method")class Dog(Animal):def speak(self):return f"{self.name} says Woof!"class Cat(Animal):def speak(self):return f"{self.name} says Meow!"def animal_sound(animal):print(animal.speak())dog = Dog("Buddy")
cat = Cat("Kitty")animal_sound(dog)  
# 输出: Buddy says Woof!
animal_sound(cat)  
# 输出: Kitty says Meow!

哇哦,你看,dogcat都是Animal类的“后代”,但是当我们调用animal_sound函数,给它们发送同一个“说话”的消息时,它们却能给出不同的回答呢,这就是多态的魅力呀!

  1. 抽象(Abstraction):化繁为简的编程魔法
    抽象就像是一位神奇的魔法师,能把复杂的现实世界问题变成简单的程序设计问题哦。在编程里,我们会用抽象类和接口来定义一些通用的规范,这样好多类就可以按照这些规范来实现不同的行为啦。比如说我们之前的Animal类就是一个有点抽象的概念哦,它定义了speak方法,但具体怎么说可没定呢,得让子类去实现呀,就像这样:
class Animal:def __init__(self, name):self.name = namedef speak(self):raise NotImplementedError("Subclass must implement abstract method")

这就给子类们提供了一个模板,让它们知道要实现“说话”这个功能,但具体怎么说就看各自的本事啦,是不是很巧妙呀?

三、三大支柱:撑起面向对象编程的稳固框架

  1. 类(Class):创建对象的魔法蓝图
    类呀,可是面向对象编程的基本构建块呢,它就像是一张神奇的蓝图,定义了对象的属性和方法哦。通过这个蓝图,我们就能创造出好多好多的对象啦。在Python里,定义一个类超级简单,只要用class关键字就行啦,就像我们之前看到的Car类的定义:
class Car:def __init__(self, brand, color):self.brand = brandself.color = colordef description(self):return f"{self.color}色的{self.brand}汽车"# 创建对象
my_car = Car("特斯拉", "黑")
print(my_car.description())  # 输出:黑色的特斯拉汽车

这里Car类就定义了brand这个属性和color这个方法哦,类就像汽车的图纸,对象是按图纸生产的实体车。

在Python中,类是一种用于创建对象的蓝图或模板。每个类可以包含多个方法(函数),其中最特别的是__init__方法,它是一个特殊的方法,被称为类的构造器。__init__方法在创建类的新实例时自动调用,用于初始化新创建的对象。

  • init 方法
    __init__方法通常被称为初始化方法,因为它负责初始化新创建的对象。这意味着你可以在这里设置对象的初始状态或属性。
    基本结构:__init__方法通常接受至少一个参数:self,然后可以接受其他参数以自定义初始化。
    self 参数:在类的方法定义中,self代表类的实例本身。通过self,你可以访问类的属性和其他方法。
  • self 参数
    含义:在类的方法定义中,self是一个指向实例本身的引用。通过self,你可以访问类的属性和其他方法。
    使用:在调用任何实例方法时,你不需要显式传递self参数;Python会自动处理。但在定义方法时,你需要在方法的第一个参数位置上放置self。
  1. 对象(Object):蓝图的鲜活实例
    对象呢,就是类的实例呀,它可是把类定义的属性和方法都实实在在地展现出来了呢。可以说对象是面向对象编程的核心哦,我们就是通过对象来进行数据和行为的交互呢。

car1 = Car("宝马", "蓝")
car2 = Car("奥迪", "银")
print(car1.description())  # 输出:蓝色的宝马汽车
print(car2.description())  # 输出:银色的奥迪汽车
  1. 方法(Method):对象的行为指南
    方法呢,就是类中定义的函数啦,它是用来执行特定的操作的哦。方法就像是给对象赋予了各种行为能力,而且这些方法可以被不同的对象调用呢。静态方法@staticmethod属于类本身,而非对象。
class Calculator:def add(self, a, b):return a + b@staticmethoddef multiply(a, b):return a * b# 调用示例
calc = Calculator()
print(calc.add(2,3))          # 输出:5
print(Calculator.multiply(4,5))  # 输出:20
http://www.dtcms.com/wzjs/823725.html

相关文章:

  • 哪个网站可以做彩经专家大型公司建站
  • html5网站特点织梦做的网站打不开网页
  • 制作公司网站在公账汇款时用途备注什么python 做网站 用哪个框架好
  • 乐达网站建设网上在哪里注册公司
  • 网站开发需要哪些技能wordpress修改头图
  • 网站怎样做优化调整河间网站制作公司
  • 哪个网站可以学做标书wordpress响应商城
  • 做网站要准备哪些素材雁塔区住房和城乡建设局网站
  • 苏州知名网站建设公司排名无锡建站模板系统
  • 百度关键词查询工具7个湖北seo网站推广策略
  • 网站上设置多语言怎么做企业所得税优惠政策2021年计算
  • 丽江网站建设c3sales网站效果图模板
  • 重庆颐众达网站家纺网站建设
  • 深圳网站建设服建设银行官方网站登录入口
  • 山东网站建设都有那些安陆网站制作公司
  • 帝国网站教程泉州网站平台建设公司
  • node做网站怎么知道蜘蛛来过做知识产权服务的网站
  • 泰安网络网站最好的cms开源
  • 贵州省住房和城乡建设厅网站官网百度快照 如何抓取网站
  • 自己电脑做服务器搭建网站有域名wordpress 响应式企业主题
  • 手机网站规划做版权保护的网站
  • 特效网站模板公众号登录平台入口
  • 网站短链接生成创建一个网站多少钱
  • 普陀网站建设哪家便宜甘肃建设体网站
  • wordpress影视站小公司网站如何做
  • wordpress能仿站吗wordpress+响应速度慢
  • 古城网站建设软件开发工具排行
  • 汕尾英文网站建设织梦网站采集如何做
  • 网站集约化建设什么意思最好用的手机编程软件
  • seo网站整站优化网站中英切换实例