返回顶部
首页 > 资讯 > 后端开发 > Python >Python基础(六)——面向对象编程
  • 324
分享到

Python基础(六)——面向对象编程

面向对象基础Python 2023-01-31 00:01:16 324人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

  这一部分难得和 Java 较为一致,直接写个例子: 1 class Stu: 2 def __init__(self, name, id): # 构造方法 3 self.name = name 4

  这一部分难得和 Java 较为一致,直接写个例子:

1 class Stu:
2     def __init__(self, name, id): # 构造方法
3         self.name = name
4         self.id = id
5     def test(self, name2):
6         print('He is {}'.fORMat(name2))
7 student = Stu('Bob', '123')
8 print(student.name, student.id) # Bob 123
9 student.test('LQ')

  注意一点:类中自定义的方法一定要含有 self 参数,但是在调用的时候,无需为此传递参数。

  如果需要将name或者id设置成私有变量,则加上短横线如:self._name 与 self._id 。则通过 get/set 方法进行控制(避免传入不必要参数)。

  python 中 _***_ 结构的变量是特殊变量(不是私有变量),特殊变量是可以直接访问的。

  主要是语法,内容应该都熟悉:

 1 class Animal(object):
 2     def run(self):
 3         print('Animal is running...')
 4 
 5 # 子类方法继承父类方法
 6 class Dog(Animal):
 7     pass
 8 d = Dog()
 9 d.run() # Animal is running...
10 
11 # 子类方法覆盖父类方法.多态
12 class Cat(Animal):
13     def run(self):
14         print('Cat is running...')
15 c = Cat()
16 c.run()  # Cat is running...
17 
18 print(isinstance(c, Cat)) # True
19 print(isinstance(c, Animal))  # True

  静态和动态是相对的,C/C++/Java 是静态语言,Python是动态语言。具体来说,在静态语言中每个变量都有固定的变量类型比如Java 中 String str = 'abc',那么此时 str = 1 这样的赋值语句会报错。相反,动态语言中定义变量无需固定死变量类型,a = 1 之后 a = '111' 也不会报错。

  静态变量易于调试,因为在内存中固定为某一区域且易于月度,动态变量书写随意,不易调试(因为变量可能别重新定义成另一种类型)不易阅读。 

  动态语言的编程称为鸭子类型,例如迭代对象需要有_inter()_,动态语言中不需要管这个对象是继承下来的还是什么,只要有这个方法,就被当作可迭代对象(秀晕了)。

  动态语言允许我们给类或者实例随意绑定方法和属性:

 1 class Stu():
 2     pass
 3 
 4 def hello(self):  # 如果要将该方法绑定给某个实例,self 参数不可少
 5     print('开心就vans了')
 6 
 7 student = Stu()
 8 
 9 # 给实例绑定属性
10 student.name = '2222'
11 print(student.name)
12 
13 # 给实例绑定方法。但是对其他实例不起作用
14 from types import MethodType
15 student.hello = MethodType(hello, student)
16 student.hello()  # 开心就vans了
17 
18 # 给Class绑定方法
19 Stu.hello = hello
20 student2 = Stu()
21 student2.hello()  # 开心就vans了

  如果我们需要对类进行限制,比如只能绑定 name、id 两个属性,可以使用_slots_ :(但是_slots_对继承的子类没有约束)

 1 class Stu():
 2     __slots__ = ('name', 'id')
 3     pass
 4 
 5 student = Stu()
 6 
 7 # 给实例绑定属性
 8 student.name = '2222'
 9 student.age = 22  # 绑定失败
10 print(student.name)
11 print(student.age)

 

 

 

  

 

--结束END--

本文标题: Python基础(六)——面向对象编程

本文链接: https://lsjlt.com/news/182355.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python基础(六)——面向对象编程
      这一部分难得和 Java 较为一致,直接写个例子: 1 class Stu: 2 def __init__(self, name, id): # 构造方法 3 self.name = name 4 ...
    99+
    2023-01-31
    面向对象 基础 Python
  • Python面向对象编程基础
    面向对象编程是Python中的核心之一,面向对象的核心并不是概念,语法,使用有多么复杂,而是一种编程思想,并不是掌握了类创建与使用就真正掌握了面向对象编程,这需要在不断工作与练习中逐步提升;抛去代码,我们先来看现实世界的基本概念: 类: 我...
    99+
    2023-01-31
    面向对象 基础 Python
  • Python面向对象基础
    NOTE:重要强调:    Python的作用域和命名空间(1)命名空间 是从命名到对象的映射    ①内置命名空间    ②全局命名空间:模块    ③本地命名空间:模块中的函数和类(2)作用域   是一个 Python 程序可以直接访...
    99+
    2023-01-30
    面向对象 基础 Python
  • Python基础之面向对象基础
    面向对象编程(Object-Oriented Programming,简称OOP)是一种编程思想,它将程序中的数据和操作封装成对象,...
    99+
    2023-09-23
    Python
  • python基础:面向对象详解
    目录1.私有方法2.私有属性3.类部调用私有属性和私有方法  4.子类不能继承父类私有属性和方法  5.修改私有属性的值  ...
    99+
    2024-04-02
  • PHP学习笔记:面向对象编程基础
    导言:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程的思维方式,通过将问题分解为多个对象并定义对象之间的交互,来解决复杂的编程问题。PHP作为一门功能强大的编程语言,也支持面向对象编程。本文将介...
    99+
    2023-10-21
    PHP 基础 面向对象编程(OOP)
  • 面向对象基础篇
    面向对象的基本格式 1 # ###### 定义类 ###### 2 class 类名: 3 def 方法名(self,name): 4 print(name) 5 return 1...
    99+
    2023-01-31
    面向对象 基础
  • XML,面向对象基础
    什么是XML  XML与JSON的对比 XML文档格式 使用XML模块解析   一,什么是XML ''' XML 全称可扩展标记语言 <tag></tag> 双标签 <tag/> 单标签 没有文本 一...
    99+
    2023-01-31
    面向对象 基础 XML
  • python 面向对象编程
    文章目录 前言如何理解面向对象编程在 python 中如何使用面向对象编程定义类创建对象self添加和获取对象属性添加属性类外添加属性类中添加属性 访问属性类外访问属性类中访问属性 ...
    99+
    2023-08-31
    python 开发语言
  • Python面向对象编程
      面向对象最重要的概念就是类(Class)和实例(Instance),Java比较熟了,下面贴代码注释   class Student(object): def __init__(self, name, score): ...
    99+
    2023-01-30
    面向对象 Python
  • Python-面向对象编程
    面向对象最重要的概念就是类(Class)和实例(Instance),类是抽象的模板,比如人类、动物类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。 以人类为例,创建一个实例为 xiaomi...
    99+
    2023-01-31
    面向对象 Python
  • Python全栈之面向对象基础
    目录1. 面向对象oop了解2. 对象的相关操作小提示:3. 类的相关操作4. 类对象的删除操作小提示:5. 小练习小提示:答案:总结1. 面向对象oop了解 # ### oop...
    99+
    2024-04-02
  • Python面向对象基础:编码细节和注意
    在前面,我用了3篇文章解释python的面向对象: 面向对象:从代码复用开始 面向对象:设置对象属性 类和对象的名称空间 本篇是第4篇,用一个完整的示例来解释面向对象的一些细节。 例子的模型是父类Employe和子类Manag...
    99+
    2023-01-30
    面向对象 细节 基础
  • 面向对象编程的基础:PHP中类和对象的构建
    在当今 Web 开发处于顶峰的数字时代,开发人员必须深入了解面向对象编程 (OOP) 及其如何应用于 PHP。PHP 是一种服务器端脚本语言,已经发展了多年,面向对象的 PHP 是现代 Web 开发的一个基础。在这篇文章中,我们将深入研究面...
    99+
    2023-11-07
    php PHP面向对象编程
  • Python面向对象编程(三)
    目录一、isinstance和issubclass二、反射(hasattr和getattr和setattr和delattr)1、反射在类中的使用2、反射在模块中的使用3、实例:基于反...
    99+
    2024-04-02
  • Python面向对象编程(二)
    目录一、对象的继承1、类的构造函数继承__init__():2、继承关系中,对象查找属性的顺序二、类的派生1、派生方法一(类调用)2、派生方法二(super)三、类的组合四、多父类继...
    99+
    2024-04-02
  • Python面向对象编程(一)
    目录一、程序中定义类和对象1、 定义类2、 定义对象二、定制对象独有特征1、引入2、定制对象独有特征3、对象属性查找顺序4、类定义阶段定制属性三、对象的绑定方法1、类使用对象的绑定对...
    99+
    2024-04-02
  • python 面向对象编程(2)
    文章目录 前言封装多态类属性和实例属性定义以及访问类属性修改类属性实例属性 类方法静态方法 前言 前面我们介绍了 python 类和对象以及继承、私有权限,那么今天我们将来介绍 py...
    99+
    2023-08-31
    python 开发语言
  • Python面向对象编程 一
    一、类    面向对象是对函数进行分类和封装,其主要目的是提高程序的重复实用性,让开发更方便快捷。    在我们的认知中,我们会根据属性相近的东西归为一类。例如:鱼类,鱼类的共同属性是呼吸,卵生。任何一个鱼都在此鱼类基础上创建的。    定...
    99+
    2023-01-31
    面向对象 Python
  • Python OOP 面向对象编程
    参考:黑马程序员教程 - Python基础 面向对象 OOP三大特性,且三个特性是有顺序的: 封装 继承 多态 封装 指的就是把现实世界的事务,封装、抽象成编程里的对象,包括各种属性和方法。这个一般都很简单,不需要多讲。 唯一要注意的...
    99+
    2023-01-31
    面向对象 Python OOP
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作