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

面向对象

时间:2023-06-25 16:13:22浏览次数:32  
标签:__ .__ stu 对象 面向对象 dict print

面向对象

面向过程

面向过程:就是机械的思维方式,先干什么,在干什么,最后干什么,其核心就是过程

代码案例,实现面向过程的例子:

  1.接受用户名和密码

  2.做逻辑处理,验证参数

  3.将数据写入文件中

优点:把复杂的问题简单化,进而流程化

缺点:扩展性差

使用场景: 对扩展性要求不高的地方,一般使用面向过程

面向对象

面向对象的核心就是‘对象’。

对象:特征与功能的结合体

优点:扩展性强

缺点:编程复杂度变高了

使用场景:一般用在对扩展性要求较高的地方

类的定义和对象的产生

类:就是一系列相似的特征和相似的技能的结合体

在程序中:

  必须先定义类,在调用类产生对象

# 给学生类定义一个属性和方法
class student():
    school = 'SH' #  school 就是一个属性,属性就是变量
    counntry = 'China'
    # 在类里面定义的函数叫方法
    def choose_course(stu_dict,course):
    stu_dict["courses"].append(course)
    print("%s选择了%s成功,%s" % (stu_dict["name"], course, stu_dict["courses"]))
     def func(self):
        pass
    # print("helloworld")
    # print("helloworl1111d")

"函数如果不调用,不会调用函数体代码。"

定义类发生的事情:

  1. 类一旦被定义,会立马执行类体代码

  2.类一旦定义完成,会产生类的名称空间,会将类中的名字放在类的名称空间去

  3.会把类的名称空间绑定给__dict__属性。

如何查看类的名称空间:类名.__dict__

  eg: print(Student.__dict__)

如何产生对象:在程序中,必须先定义类,然后调用类产生对象

如何调用类:类名() 

  eg: stu = Student()   # 得到的结果stu为一个对象

如何查看对象的名称空间: 对象名.__dict__

  eg:print(stu.__dict__)   # 调用类产生对象,得到的是一个空对象,其实就是空字典

“““ 每调用一次类,都会产生一个对象,并且产生的对象之间是相互独立,互不影响的”””

调用类的过程也是实例化的过程,得到的结果就是一个实例

定制对象自己独有的属性

class Student():
    # school就是一个属性
    school = 'SH'  # 属性就是变量

    # __init__这个函数名不能改名字,必须叫这个名字,一点都不能差
    def __init__(stu_obj, name, age, gender, salary):
        stu_obj.name = name  # stu.__dict__['name'] = 'kevin'
        stu_obj.age = age  # stu.__dict__['age'] = '18'
        stu_obj.gender = gender  # stu.__dict__['gender'] = 'male'
        stu_obj.salary = salary  # stu.__dict__['salary'] = '1800'

怎么得到一个对象

  调用类会自动的触发类里面的__init__方法,然后会把得到的对象本身当成第一个参数自动传递

"""__dict__开头的属性或者方法都有他自己的特殊含义,一般不建议使用"""

名字的查找顺序(重点)

属性的查找顺序分两大类:

类属性:在类里面定义的属性就是类属性 

  查看:print(Student.school)

  增加:Student.x = 'a'   

       Student.y = 'b'

  改:Student.x = 10

  删除; del Student .school

       print(Student.dict__)

对象属性:就是对象自己独有的属性

print(stu.__dict__)

  查看: print(stu.__dict__['name'])

      print(stu.__dict__['age'])

     print(stu.__dict__['gender'])

或者:

  print(stu.name)
  print(stu.age)
  print(stu.gender)
  stu.school = 10
  print(stu.__dict__)

"""这是个特殊的:对象属性的查找顺序是:先在自己对象的名称空间中查找,如果找不到再去产生这个对象的类中取找,如果找不到,就报错"""

 增加:stu.x = 1

改:stu.x = 10
删除:del stu.school

print(stu.__dict__)

 

 

标签:__,.__,stu,对象,面向对象,dict,print
From: https://www.cnblogs.com/Lucky-Hua/p/17503146.html

相关文章

  • python基础day31 面向对象
    面向过程在支持面向对象的语言中,都有两大范式:1.面向过程;2.面向对象面向过程:核心就是过程二字,即是先干什么,再干什么,最后干什么,就是机械式的思维方式举例: 把大象放进冰箱需要几步? 1.把冰箱门打开2.把大象放进去3.关上冰箱门代码案例:实现面向过程的例子......
  • 类和面向对象编程
    一、两大范式支持面向对象的语言中,都有两大范式面向过程和面向对象1、面向过程:流程化、步骤化思维优点:复杂的问题简单化,进而流程化缺点:扩展性差,牵一发而动全身使用场景:对扩展性要求不高的地方,一般使用面向过程2、面向对象对象就是盛放数据"属性"和"方法"的结合体属性:简......
  • Python全栈工程师(7:面向对象高级进阶)
    面向对象高级语法部分类的字段、方法、属性经典类vs新式类Python2中:经典类--深度优先;新式类--广度优先Python3中:均为广度优先super()方法:抽象接口#/usr/bin/env.python#-*-coding:utf-8-*-importabcclassAlert(object):'''报警基类'''__metaclass__=abc.......
  • OOP面向对象第三阶段学习总结
    OOP面向对象第三阶段学习总结目录 · 前言 · 设计与分析 · 踩坑心得 · 改进建议 · 总结 一、前言不知不觉OOP学习就已经来到了尾声,也即将要步入大二,回头望来,总总令人感慨。第三阶段的学习主要包括,一些set和map的用法。更加抽象点的提升呢,就是对自身对于......
  • python入门(十):面向对象编程
    Python面向对象编程指南原文|大纲|首页在Python中,面向对象编程(Object-OrientedProgramming,简称OOP)是一种重要的编程范式。它允许我们通过创建对象、定义类和实现继承等概念来组织和管理代码。了解Python的面向对象编程对于编写可维护、可扩展和可重用的代码至关重要。......
  • 3、错误的面向对象
    1、滥用getter、setter方法在之前参与的项目开发中,我经常看到有同事定义完类的属性之后,就顺手把这些属性的getter、setter方法都定义上有些同事更加省事,直接用IDE或者Lombok插件(如果是Java项目的话)自动生成所有属性的getter、setter方法当我问起,为什么要给每个属性......
  • JAVA面向对象程序设计_PTA题目集07-11总结分析
    JAVA面向对象程序设计_PTA题目集07-11总结分析前言:天将降大任于是人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为。所以动心忍性,增益其所不能。随堂检测在最末浅析。 题目集七:知识点:类间设计,类的设计。题量:一题,菜单计价五。难度:八个满分。 题目集八:知识点:类......
  • C++面向对象技术与C++课程设计任务书[2023-06-23]
    C++面向对象技术与C++课程设计任务书[2023-06-23]面向对象技术与C++课程设计任务书题目1 小型学籍管理系统班级 21060101~02 指导教师 耿军雪姓名 学号 地点 G1-203 完成时间 2023/6/262023/6/30【目的与要求】1、目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基......
  • Java—面向对象
    概念:面向对象编程——以类的方式组织代码,以对象的组织数据。1.类和对象类是一个模板:抽象,对象:一个具体的实例。2.方法就是函数。3.对象的引用引用类型:基本类型(8)对象是通过引用来操作的:栈——>堆。4.属性在Java里叫字段。5.对象的创建和使用必须使用new关键字构建对象,构......
  • [连载]JavaScript讲义(03)--- JavaScript面向对象编程
    ......