什么是面向对象?如果接触过其他语言或者了解过面向对象的特征那应该都会有所了解设计的方法,但是没接触过的童鞋来说一脸懵逼呀。
抽象的思维,面向对象设计方法以对象为核心。
人类作为一个对象,每个人的特征都不太一样,比如我是黄种人聪明,你是黑种人霸道,他是白种人善良等等高大威猛特征。
1、比如他是个人类,这个人就作为对象,一些特征有名字,x种人、年龄、工作。
def race(name, type_race, age, work): ‘‘‘ :param name: 您的名字 :param type_race: 三种类型:黄种人、黑种人、白种人 :param age: 您的年龄 :param work: 您的工作 :return: ‘‘‘ type = type_race name = name age = age work = work return ‘我名字叫:%s,是%s,年龄:%s,工作是%s‘ % (name, type, age, work) print(race(‘广深小龙‘, ‘黄种人‘, ‘22‘, ‘IT‘))
2、现在又传了另一个人为对象,特征是名字,黑种人,年龄70岁,工作PM
直接调用 race 函数即可,传入一个对象的特征,这个过程就是面向对象;
1、面向过程:简单来说就像记流水账一样,只关心过程。
# 1、面向过程:(记流水账) name = ‘广深小龙‘ type_race = ‘黄种人‘ age = 22 work = ‘IT‘ print(‘我名字叫:%s,是%s,年龄:%s,工作是%s‘ % (name, type, age, work))
2、面向对象:通过一个模子创造出不同的对象。
# 2、面向对象: def race(name, type_race, age, work): ‘‘‘ :param name: 您的名字 :param type_race: 三种类型:黄种人、黑种人、白种人 :param age: 您的年龄 :param work: 您的工作 :return: ‘‘‘ type = type_race name = name age = age work = work return ‘我名字叫:%s,是%s,年龄:%s,工作是%s‘ % (name, type, age, work) print(race(‘广深小龙‘, ‘黄种人‘, ‘22‘, ‘IT‘)) print(race(‘美国黑寡妇‘, ‘黑种人‘, ‘70‘, ‘PM‘)) print(race(‘小欧欧‘, ‘白种人‘, ‘18‘, ‘IT‘))
有没有发现面向过程很鸡肋?我想传参别的对象还得改源码,那样太麻烦了,面向过程直接传一个对象就可以了。
然而面向对象我们这篇只是初识,并不是那样的简单,只是初识,还得继续学习。我们看下这个面向对象技术简介:
用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
1、创建类:class 类名
class Ojb: def __init__(self, name, type_race, age, work): ‘‘‘ :param name: 您的名字 :param type_race: 三种类型:黄种人、黑种人、白种人 :param age: 您的年龄 :param work: 您的工作 :return: ‘‘‘ ‘‘‘静态属性‘‘‘ self.name = name self.type = type_race self.age = age self.work = work def race(self): return ‘我名字叫:%s,是%s,年龄:%s,工作是%s‘ % (self.name, self.type, self.age, self.work) def func(self, num):
‘‘‘动态属性‘‘‘ return ‘家中有%s口人!‘ % num def ar(self): return ‘ar方法被调用!‘ if __name__ == ‘__main__‘: res = Ojb(‘广深小龙‘, ‘黄种人‘, ‘22‘, ‘IT‘) # 实例化 print(res.__dict__[‘name‘]) # res.__dict__[‘name‘] = ‘傻小子‘ # 修改了对象的变量,和操作字典一样 res.name = ‘傻小子‘ # 修改了对象的变量,和操作字典一样 print(res.age) race = res.race() res_num = res.func(6) # 调用方法 res_num1 = Ojb.ar(res) # 调用方法 print(race) print(res_num) print(res_num1)
对象过程:
对象能做的事:
类名能做的事:
欢迎来大家QQ交流群一起学习:482713805
原文:https://www.cnblogs.com/gsxl/p/12493283.html