首页 > 其他分享 >面向对象

面向对象

时间:2024-01-17 20:35:39浏览次数:21  
标签:__ name 对象 self 面向对象 def 属性

面向对象

面向对象概述


### 面向对象是基于过程来的事想,在程序中创建实例化对象,指挥对象做事情(指挥官)



1.面向对象开发

1.1语法格式

class People:
  def send_emmail(self,name)
      print(f'发送邮件给{name}')
p1=People()
p1.send_email('马云')

2.类中的函数定义

在python中类是一种自定义数据类型,它可以包含属性(变量)和方法(函数)。在类中面向对象编程是一种重要的概念。它允许为对象添加行为。

#示例
lass MyClass:  
    def __init__(self, name):  
        self.name = name  
      
    def say_hello(self):  
        print(f"Hello, my name is {self.name}")

在上面的代码中我们定义了一个名为MyClass的类。这个类包含两部分:构造函数__init__和方法say_hello。构造函数用于初始化对象的属性,而方法则定义了对象的行为。

在MyClass类中,我们定义了一个名为say_hello的函数。这个函数接受一个参数self,它表示类的实例本身。在函数内部,我们使用print函数输出一条问候语,其中使用了对象的name属> 性。
要是用这个类我们可以创建一个实例,并调用这个方法:

# 创建一个名为"John"的MyClass实例  
my_instance = MyClass("John")  
  
# 调用say_hello方法并输出结果  
my_instance.say_hello()

输出结果为

Hello, my name is John
2.1属性和行为
属性:属性是指对象的特征用来表示对象发状态。例如:一个人有姓名年龄属性,汽车有颜色,品牌等特性。在面向对象的编程中属性通常用变量来表示并通过访问器(get)和修改器(set)来
获取和设置属性值。

行为:行为是指对象可以执行的操作和功能。例如:一个人可以吃饭可以睡觉,一个汽车可以汽车可以启动可以停止等。在面向对象编程中行为一般用方法(methon)来表示。方法是一种封装了特定功能的代码块,可以用调用对象的方法来实现对象的行为。
总结:属性是描述对象的状态,行为描述对象可以执行的操作。在面向对象的编程中,通过定义类(class)来创建具有属性和方法的对象。


3.封装,继承,多态

在python中封装,继承,多态是面向对象编程的核心概念,他们使代码更模块化,可维护,可重用

3.1继承

继承是面向对象的一个重要概念,它允许我们创建一个新类并使用这个类的属性和方法。通过继承可以使用已有的代码,减少重复劳动,使代码结构更加清晰。在python中使用class关键字> 来定义类,可以在类名后面加上冒号和基类来实现继承。

class Animal:  
    def __init__(self, name):  
        self.name = name  
      
    def speak(self):  
        pass  
  
class Dog(Animal):  
    def speak(self):  
        return "Woof!"

上面的代码通过创建了一个Animal基类和一个派生类Dog。Dog类继承了Animal类的属性和方法,并覆盖了speak方法。这样,我们就可以使用Dog类来创建狗对象,并调用其speak方法。

3.2封装

封装是将对象的属性和方法封装到一个类里,以隐藏对象的内部实现细节。通过封装我们可以保护对象的属性不被外部随意修改。在python中,使用下划线开头的属性和方法属于私有方法,> 只能在类的内部被访问。

class Person:  
    def __init__(self, name):  
        self._name = name  # 私有属性  
      
    def get_name(self):  
        return self._name  # 公有方法返回私有属性值

在上面代码中我们创建了一个私有属性_name和一个公有方法get_name。通过将_name设置为私有属性,我们确保外部代码无法去修改它。而get_name的方法允许外部代码去获取该属性的 > 值。这种封装方法保护了对象内部的值不被随意修改,确保了代码的完整性和可维护性。

3.3多态

多态指同一操作用于不同对象,产生不同的执行结果。多态的存在让代码更加灵活和可扩展。

class Shape:  
    def area(self):  
        pass  
      
class Circle(Shape):  
    def __init__(self, radius):  
        self.radius = radius  
      
    def area(self):  
        return 3.14 * self.radius ** 2  
      
class Rectangle(Shape):  
    def __init__(self, width, height):  
        self.width = width  
        self.height = height  
      
    def area(self):  
        return self.width * self.height

上面我们定义了一个基类Shape和两个派生类Circle,Rectangle,并且三个类都有一个方法area()但是他们实现不同。这样,我们可以根据不同的对象来调用area(),根据对象的实际类型> > 来实现相应的实现。这种多态可以让代码更加灵活和可扩展。

标签:__,name,对象,self,面向对象,def,属性
From: https://www.cnblogs.com/T3h4t5-Blog90/p/17966487

相关文章

  • Python面向对象之元类
    元类【一】概要元类是类的类,它用于定义其他类。在Python中,一切皆对象,包括类。而元类就是用来创建这些类的“类”。类是对象:在Python中,类本身也是一个对象,而元类就是用来创建这些类的对象。【二】常见用法type函数:在Python中,type函数不仅可以返回对象的类型,还可以用于创建......
  • Python 面向对象的私有属性获取
    前言全局说明一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563四、面向对象的私有属性获取4.1.2classFoo:def__init__(self):self.name='wangwu'......
  • 开发日记3(java面向对象)
    (一)java面向对象1、面向过程和面向对象很久很久以前,系统学习过C语言,但也只是学过,没有产生过除了考试以外的其他价值。后来工作中很多伙伴都在使用java,虽然当时自己不写java,但很久之前就有个概念,这两种语言还是不同的,一个面向过程、一个面向对象。面向过程比较容易理解,基实过程可以理......
  • Java面向对象
    Java面向对象面向对象编程(Object-OrientedProgramming,OOP)面向对象编程本质:以类的方式组织代码,以对象的组织(封装)数据三大特性:1、封装所谓的封装就是把类的属性和方法使用private修饰,不允许类的调用者直接访问,如果想要操作这些属性使用public的get、set方法。封装的作用:不......
  • Python面向对象之内置方法
    内置方法【一】常用方法特殊属性__name__:类的名称。__module__:类定义所在模块的名称。__dict__:包含类命名空间的字典。__bases__:包含基类的元组,按它们在基类列表中的出现先后排序。__doc__:类的文档字符串,如果未定义则为None。特殊方法(魔法方法):满足一定......
  • springboot第48集:【思维导图】地图,面向对象,异常,功能代码
    在SpringBoot中,可以通过编写拦截器(Interceptor)来对请求进行拦截与处理。下面是一个简单的拦截器实现示例:创建一个类并实现HandlerInterceptor接口publicclassAuthInterceptorimplementsHandlerInterceptor{@OverridepublicbooleanpreHandle(HttpServletRequest......
  • 面向对象②
    packagecom.fan.base;importjava.util.Scanner;publicclassCycle{publicstaticvoidmain(String[]args){Scannerscanner=newScanner(System.in);//从键盘输入半径doubler=scanner.nextDouble();Areac=newArea();//对Cycle这个类进行......
  • 数组 数组的内存 面向对象 this
    静态初始化全写:数据类型[]数组名=new数据类型{值};简写:数据类型[]数组名={值};动态初始化数据类型[]数组名=new数据类型[数组长度];数组不赋值时会默认初始化一个值整数:0小数:0.0字符:"/uoooo"(显示出来就是一个空格)布尔:FALSE引用数据类型:null数组的内存堆内存......
  • python面向对象之元类
    一、元类介绍什么是元类呢?一切源自于一句话:python中一切皆为对象。让我们先定义一个类,然后逐步分析classStanfordTeacher(object):school='Stanford'def__init__(self,name,age):self.name=nameself.age=agedefsay(self):prin......
  • python面向对象之单例模式的使用
    单例模式​ 单例模式(SingletonPattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。​ 比如,某个程序的配置信息存放在一个文件中,客户端通过一个Appconfig的类来读取配置......