本文主要是介绍面向对象编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
面向对象编程
![](/upload/202204/06/202204062049586849.png)
编程思想
1.面向过程编程
将程序的致辞那个流程化 按照程序的执行流程编写代码,解决需求问题
eg:
登录账号
'''
第一步:获取用户名密码
第二步:比对用户数据
第三部:比对成功允许用户登录
'''
过程可以理解成是流水线 执行完上一步再执行下一步
面向对象编程可以理解成创建一条流水线
2.面向对象编程
对象:对象其实就是一个'容器',将数据与功能整合到一起
符合上述含义的都可以称之为对象
eg:
'''
python基础数据类型str
str赋值后有数据,且可以通过点的方式调用其方法
str就是一个对象
python文件
py文件里面有我们定义的数据,也有我们定义的功能函数
文件也是一个对象
'''
"""python一切接对象!!!"""
"""
面向对象与面向过程并无优劣之分,具体使用要结合情况,选用最快捷的,最方便的一个编程思想进行代码编写
ps:很多时候,两种思想都是混在一起用的,只不过所占比例不同
"""
类与对象
# 类与对象概念
对象:数据与功能的结合体
类:诸多对象共有的特征(数据、功能)!!!
# 类与对象的创建
"""
在代码编程中是先有类才能有对象
"""
# 创建学生类
eg:
# 创建学生类
class Student:
# 学生类公共数据
name = 'petter'
age = 18
school = '家里蹲大学'
# 学生类公共功能
def get_class(self):
print('学生选课系统')
'''类体代码无需调用,程序运行时就会执行,产生类的名称空间'''
# 语法结构
class 类名:
类体代码
'''
1.class是定义类的关键字,类似于函数定义关键字def
2.类名类似于函数名,但是推荐首字母大写,用原来区分类与函数
3.类体代码就是存放对选哪个公共数据和功能的地方
数据:变量名 = 变量值
功能:函数
'''
# 查看类的名称空间的方法:__dict__
# print(Student.__dict__) # 获取类的所有名称空间,返回dict
# print(Student.__dict__['name']) # 获取name的名称空间
# print(Student.__dict__['get_class']) # 获取函数get_class的名称空间
# >>>{'__module__': '__main__', 'name': 'petter', 'age': 18, 'school': '家里蹲大学', 'get_class': <function Student.get_class at 0x021E1150>, '__dict__': <attribute '__dict__' of 'Student' objects>, '__weakref__': <attribute '__weakref__' of 'Student' objects>, '__doc__': None}
# >>>petter
# >>><function Student.get_class at 0x021E1150>
'''上述方法太冗长,有简写'''
# 类获取数据和功能的简便方式:句点符
# print(Student.name) # 获取name的名称空间
# print(Student.get_class) # 获取函数名称空间
# >>>petter
# >>><function Student.get_class at 0x01521150>
# 通过类产生对象
'''类名加括号可以返回一个对象'''
# obj1 = Student() # 产生一个对象命名为obj1
# print(obj1.name)
# obj1.name = 'oscar' # 修改名字与值的对应关系
# print(obj1.name)
# >>>petter
# >>>oscar
对象的实例化
# 新建学生类
class Student:
# 对象特有数据获取函数
def __init__(self,name,age):
self.name = name
self.age = age
# 公共的参数
school = '家里蹲大学'
def get_class(self):
print('学生选课系统')
# 给对象添加独有的数据(实例化对象)
# obj1 = Student('petter',18)
# obj2 = Student('oscar',20)
# print(obj1.name)
# print(obj1.school)
# print(obj2.name)
# print(obj2.school)
# >>>petter
# >>>家里蹲大学
# >>>oscar
# >>>家里蹲大学
"""
类中的__init__方法会在类产生对象的时候自动执行
(__init__就是类的构造方法)
类产生对象的具体步骤
1.先创建一个没有独有数据的空对象 {}
2.将空对象和类括号内传入的数据一并交给__init__执行
__init__的第一个参数就是对象本身
__init__(obj,name,age,gender)
3.将创建好的对象自动返回
给你提供这种方式能够减少代码的编写
ps:针对括号内第一个形参self其实就是一个普通的变量名而已
只不过该变量名将来专门接收对象的 所以给它起了个固定的名字叫self
"""
绑定方法
"""
在类中定义的函数默认都是绑定给对象使用的
即对象来调 会自动将对象当做第一个参数传入
"""
class Student:
# 对象特有数据获取函数
# __init__方法不要自己去调用,实例化的时候自动调用
def __init__(self,name,age):
self.name = name
self.age = age
# 公共的参数
school = '家里蹲大学'
def get_class(self):
print('学生选课系统')
def func1(self):
print('func1被%s调用'%self.name)
def func2(self):
print('func2被%s调用'%self.name)
# 类调用类中函数 有几个参数就需要传几个参数
# obj1 = Student('petter',18)
# 对象调用类中函数 会将当前调用的对象当做第一个参数自动传入
# print(obj1.func1())
# print(obj1.func2())
# >>>func1被petter调用
# >>>None # 类的默认返回值
# >>>func2被petter调用
# >>>None
![](https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fws2.sinaimg.cn%2Fbmiddle%2F9150e4e5ly1fm3llrm03ij205i047t8r.jpg&refer=http%3A%2F%2Fws2.sinaimg.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto)
这篇关于面向对象编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!