面对对象编程基础

面对对象编程

什么是面对对象编程?
  面对对象编程时一种编程思想,它的核心是"对象"。在面对对象编程语言中,具有相同属性或能力的模型是使用类进行定义喝表示的
  对象是什么东西? 
  对象是"容器",用来盛放数据与功能的
  对象的终极奥义就是将程序"整合"
  类也是"容器",该容器用来存放同类对象共有的数据与功能

# 程序 = 数据 + 功能

# 学生的数据
stu_name = 'wuxie'
stu_age = 18
stu_gender = 'male'

# 学生的功能
def tell_info():
    print(f'名字:{stu_name},年龄:{stu_age},性别:{stu_gender}')

def set_info(x,y,z)
    global stu_name
    global stu_age
    global stu_gender

    stu_name = x
    stu_name = y
    stu_name = z

类与对象

在python中,把具有相同属性和方法的对象归为一类,比如,人类,动物,植物

在使用类之前必须先创建这个类,语法格式如下
class Students:
    语句
* class: 定义类的关键字
* Students: 类的名字,在python中,类的首字母大写

类只有实例化后才能够使用,类的实例化与函数的调用类似,只要使用类名加小括号的形式就可以实例化一个类。

# 先定义类
 class Student:
     # 变量的定义
     stu_school = 'old'
     # 功能的定义
     def tell_stu_info(stu_obj):
         print("学生姓名: 名字:%s 年龄:%s 性别:%s" %(
               stu_obj['stu_name'],
               stu_obj['stu_age'],
               stu_obj['stu_gender']
             ))
    print('>>>>1')

>>>
>>>>1

# 类是最常见的变量与属性的定义,但是类体其实是可以包含任意其他代码的
# 注意:类体代码是在类定义阶段就会立即执行,会产生类的名称空间

# 类的名称空间 使用__dict__查看 字典格式

# 属性的访问语法
print(Student.stu_school)  # Student.__dict__['stu_school']


# 再调用类产生对象

stu1.obj = Student()  # stu1.obj即为对象

# 定义类并使用类
可以使用关键字def在类的内部定义一个方法。在定义类的方法后,可以让类具有一定的功能,定义类方法与其他函数的定义方式一样,但是有以下区别
1.方法的第一个参数必须是self,而且不能省略
2.方法的调用需要实例化类,并以"实例名.方法名(参数列表)"的形式调用
3.必须整体进行一个单位的缩进,表示这个方法属于类体的内容


# 初始化对象
__init__()


# 在调用类的过程称之为实例化,发生了三件事

1. 先产生一个空对象
2.python会自动调用类中__init__方法然将空对象已经调用类时括号内传入的参数一同传给__init__方法
3. 返回初始化对象


# 总结__init__方法
1.会在调用类时自动触发执行,用来为初始化自己独有的数据
2.__init__内应该存放时为对象初始化属性的功能,但是是可以存放任意的其他代码,想要在类调用时立即执行的代码都可以放大改方法内
3.__init__方法必须返回None

类的属性查找

类中存放的是对象共有的数据与功能
# 类中可以访问
1.类中的数据属性
2.类中的函数属性

类中的数据属性是共享给所有对象用的,大家访问的地址都一样
类的函数属性是绑定给对象用的,而且是绑定给对象的
类调用自己的函数属性必须严格按照函数的用法来
# 现在自己的对象中找,没有再到类中属性找
posted on   zhifwu  阅读(64)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示