iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python入门之面向对象和类
  • 777
分享到

Python入门之面向对象和类

2024-04-02 19:04:59 777人浏览 泡泡鱼

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

摘要

目录一、两大编程思想二、类与对象三、定义python中的类四、对象创建五、类属性、类方法、静态方法六、动态绑定属性和方法七、面向对象的三大特征八、方法重写总结一、两大编程思想 二、

一、两大编程思想

在这里插入图片描述

二、类与对象

在这里插入图片描述

简单举例:

在这里插入图片描述

python中一切皆对象,开局一张图:

在这里插入图片描述

三、定义Python中的类

在这里插入图片描述

举例1:

class Student:
    pass

print(id(Student)) #1149225945800
print(type(Student)) #<class 'type'>
print(Student) #<class '__main__.Student'>

举例2:

class Student:
    native_place='吉林' #类属性
    def __init__(self,name,age):
        self.name=name
        self.age=age

    #实例方法
    def eat(self):
        print("学生在吃饭")

    #静态方法
    @staticmethod
    def method():
        print("我是静态方法")

    #类方法
    @claSSMethod
    def cm(cls):
        print("我是类方法")

四、对象创建

在这里插入图片描述

举例1:

#实例对象
student1=Student("张三",18)
print(student1)
print(id(student1))
print(type(student1))
print("-------------------------------------------")
#类对象,代表所在的类
print(Student)
print(id(Student))
print(type(Student))

举例2:

#实例对象
student1=Student("张三",18)

print(student1.name)
print(student1.age)
#实例方法调用有以下两种使用:
print(student1.eat())
print(Student.eat(student1))

五、类属性、类方法、静态方法

在这里插入图片描述

举例1:类属性

#类属性
student1=Student("张三",18)
student2=Student("李四",19)
print(Student.native_place) #吉林
print(student1.native_place)#吉林
print(student2.native_place)#吉林
Student.native_place='四川'
print(student1.native_place)#四川
print(student2.native_place)#四川
#---------------------------------------------------------
student1.native_place='广东'
print(student1.native_place)#广东
print(student2.native_place)#四川

举例2:类方法、静态方法

#类方法、静态方法使用
student1=Student("张三",18)

Student.method()#我是静态方法
Student.cm()#我是类方法

六、动态绑定属性和方法

Python是动态语言,在创建对象之后,可以动态的绑定属性和方法

在这里插入图片描述

举例:属性绑定

class Student:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    #实例方法
    def eat(self):
        print("学生在吃饭")

student1=Student('张三',19)
student2=Student('李四',20)
print(id(student1)) #2363920157896
print(id(student2)) #2363920157960

print("--------绑定属性-------")
print("绑定属性-----为student2动态的绑定gender属性-------")
student2.gender='男'
print(student1.name,student1.age) #张三 19
#print(student1.gender) 当student1访问其没有的属性时,会报错AttributeError: 'Student' object has no attribute 'gender'
print(student2.name,student2.age,student2.gender) #李四 20 男

print("--------绑定方法-------")
def show():
    print('我是show方法')
student1.show=show
student1.show() #我是show方法
student2.show() #报错AttributeError: 'Student' object has no attribute 'show'

内存分析:

在这里插入图片描述

七、面向对象的三大特征

在这里插入图片描述

1、封装

class Car:
    def __init__(self,brand,age):
        self.brand=brand
        self.__age=age

    def show(self):
        print(self.brand,self.__age)

car1=Car('宝马X5',50)
print(car1.brand) #宝马X5
# print(car1.__age) __标识的属性限制其在类外使用,在类的内部可以使用,在外面访问是会报错
#若要使用__标识的属性,可以先用dir()查出属性,再访问
print(dir(car1))
#输出['_Car__age', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__fORMat__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'brand', 'show']
print(car1._Car__age)#50

2、继承(与其他语言不同,python支持多继承)

在这里插入图片描述

在这里插入图片描述

举例:

class People:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def info(self):
        print(self.name,self.age)

class Student(People):
    def __init__(self,name,age,sno):
        super().__init__(name,age)
        self.sno=sno
class Teacher(People):
    def __init__(self,name,age,teachofage):
        super().__init__(name,age)
        self.teachofage=teachofage

student1=Student('张三',18,122)
teacher1=Teacher('李四',36,10)
student1.info() #张三 18
teacher1.info() #李四 36

八、方法重写

在这里插入图片描述

举例:

class People:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def info(self):
        print(self.name,self.age)

class Student(People):
    def __init__(self,name,age,sno):
        super().__init__(name,age)
        self.sno=sno
    def info(self):
        super().info()
        print(self.sno)
class Teacher(People):
    def __init__(self,name,age,teachofage):
        super().__init__(name,age)
        self.teachofage=teachofage
    def info(self):
        super().info()
        print(self.teachofage)

student1=Student('张三',18,122)
teacher1=Teacher('李四',36,10)
student1.info() 
teacher1.info() 

结果为:

在这里插入图片描述

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: Python入门之面向对象和类

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python面向对象之入门类和对象
    目录什么是面向对象编程?定义类,从具体代码来感受吧!多个类和对象的观察补充一下类的属性(数据部分)总结什么是面向对象编程? 我们是不是听过面向过程,拿来放在一起对比就比较好理解了。 ...
    99+
    2022-11-12
  • Python入门之面向对象和类
    目录一、两大编程思想二、类与对象三、定义Python中的类四、对象创建五、类属性、类方法、静态方法六、动态绑定属性和方法七、面向对象的三大特征八、方法重写总结一、两大编程思想 二、...
    99+
    2022-11-12
  • Python面向对象之类和对象
    目录类定义类定义类和属性类中方法对象方法(普通方法)类方法静态方法魔术方法对象创建对象对象属性总结 类 定义类 所有类名首字母要求大写,多个单词时遵循驼峰命名法 所...
    99+
    2022-11-12
  • python面向对象OOP入门
     一、面向对象简介      面向对象编程不是python独有,几乎所有高级语言都支持;面向对象不管在那个语言中都有三大特性:即:封装、继承、多态;具体的本文主要讲python面向对象--类及三大特性的具体实现;二、面向对象之python类...
    99+
    2023-01-31
    面向对象 入门 python
  • python学习之面向对象【入门初级篇】
    前言 最近在学习Python的面向对象编程,以前是没有接触过其它的面向对象编程的语言,因此学习这一部分是相当带劲的,这里也总结一下。 概述 python支持多种编程范式:面向过程、面向对象、面向切面(...
    99+
    2022-06-04
    面向对象 入门 python
  • python面向对象之类成员
    一、概述       上篇《python面向对象OOP》介绍了python面向对象的基础初级入门部分,提到了类的定义,使用,类的三大特性;经典类,新式类在查找时的区别等,有了前面的基础,本文接着描述面向对象中类成员;先整体描述下,类中的成员...
    99+
    2023-01-31
    面向对象 成员 python
  • python 面向对象之类方法
    类方法通过@classmethod装饰器实现,类方法和普通方法的区别是, 类方法只能访问类变量,不能访问实例变量举个例子class Dog(object):     def __i...
    99+
    2023-01-30
    面向对象 方法 python
  • Python面向对象入门实例分析
    这篇文章主要介绍“Python面向对象入门实例分析”,在日常操作中,相信很多人在Python面向对象入门实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python面向对象入门实例分析”的疑惑有所帮助!...
    99+
    2023-06-27
  • python 面向对象、类、对象
    class 类 object 对象 object-oriented programming 面向对象,简称OOP attribute 属性 method 方法 inheritance 继承 python中通过类和对象来实现 ...
    99+
    2023-01-31
    面向对象 对象 python
  • JAVA面向对象之继承 super入门解析
    目录1 继承1.1概念1.2 特点1.3 练习:继承入门案例2 super3 继承的用法3.1 练习:super之继承中成员变量使用3.2 练习:super之继承中构造方法的使用4 ...
    99+
    2022-11-13
  • C++入门浅谈之类和对象
    目录一、面向过程vs面向对象二、类的限定符及封装三、类的实例化四、this指针五、默认成员函数1. 构造函数2. 析构函数3. 拷贝函数4. 赋值运算符重载总结一、面向过程vs面向对...
    99+
    2022-11-12
  • python 面向对象之类的继承
    python中什么是继承:新类不必从头编写新类从现有的类继承,就自动拥有了现有类的所有功能新类只需要编写现有类缺少的新功能继承的好处:复用已有代码自动拥有了现有类的所有功能只需要编写缺少的新功能继承的特点:子类和父类是is关系python继...
    99+
    2023-01-30
    面向对象 python
  • 【Python刷题篇】——Python入门 011面向对象(二)
    🤵‍♂️ 个人主页: @北极的三哈 个人主页 👨‍💻 作者简介:Python领域新星创作者。 📒 系列专栏:《牛客刷题-Pyt...
    99+
    2023-09-05
    python 开发语言
  • python面相对象之类和对象
      类和对象是python面相对象中两个重要的概念,类是客观世界中事物的抽象,而对象是类实例后的变量,比如汽车模型可以造出各种各样的汽车,汽车模型就是类,汽车就是汽车模型抽象出来的实例,这里有必要还有说一下方法,函数在类中叫方法,比如汽车...
    99+
    2023-01-31
    对象 面相 python
  • Java基础入门篇之如何使用面向对象和类的定义
    这篇文章主要讲解了“Java基础入门篇之如何使用面向对象和类的定义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java基础入门篇之如何使用面向对象和类的定义”吧!一、面向对象面向对象是在程...
    99+
    2023-06-15
  • python面向对象,类
    1:类和对象    是面向对象中的俩个重要概念,类是对事物的抽象,比如人类,球类。对象是事物的实例,比如足球,篮球。球类可以对球的特征和行为进行抽象,然后可以实例化一个真实的球体出来。2:类的定义    类把需要的变量和函数组合成一起,这种...
    99+
    2023-01-31
    面向对象 python
  • Python面向对象之为何要用类
      对于非程序员科班出身的技术人员,理解很多开发思想领域里面的事情,其实是一件挺痛苦的事情,直到接触到了Python当中的类,我才明白了什么是面向对象,更多的理解还是要通过实际的代码操练才能够慢慢的掌握。今天记录一下什么是面向对象,在Pyt...
    99+
    2023-01-31
    要用 面向对象 Python
  • Python面向对象之面向对象基本概念
    面向过程和面向对象概念 过程和函数:过程类似于函数,只能执行,但是没有返回结果;函数不仅能执行,还能返回结果。 面向过程和面向对象 基本概念 面向过程-怎么做 把完成某一个需求的所有步骤从头到尾逐步实现; 根据开发需求,将某些功能独立的...
    99+
    2023-01-31
    面向对象 基本概念 Python
  • Python面向对象编程入门实例分析
    这篇文章主要讲解了“Python面向对象编程入门实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python面向对象编程入门实例分析”吧!一、面向对象和面向过程1.两类软件开发设计方法...
    99+
    2023-07-06
  • Java 面向对象 之 抽象类 abstract
    转载于 : http://www.verejava.com/id=16992804621647 public class TestAbstract {public static&n...
    99+
    2023-06-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作