摘要:类其实就是由属性和方法组成的一个抽象概念。类和对象的关系类是模板,对象是根据类这个模板创建出来的,应该先有类,再有对象。使用同一个类,能够创建出很多对象。不同对象对应的属性值也会不同。
目录
类是对一群具有相同 特征 或者 行为 的事物的一个统称,是抽象的,不能直接使用。
特征其实就是一个变量,在类里我们称之为属性。
行为其实就是一个函数,在类里我们称之为方法。
类其实就是由 属性 和 方法 组成的一个抽象概念。
对象是由类创建出来的一个具体存在,可以直接使用。由哪一个类创建出来的对象,就拥有在哪一个类中定义的属性和方法。在开发中,应该先有类,在类里定义好属性和行为,再根据类来创建对象。
类和对象的关系
类是模板,对象是根据类这个模板创建出来的,应该先有类,再有对象。
使用同一个类,能够创建出很多对象。
类中定义了什么属性和方法,对象中就有什么属性和方法。
不同对象对应的属性值也会不同。
三、类的定义
class 类名(): def 方法1(self,参数列表): pass def 方法2(self,参数列表): pass
方式一:通过 类名.类属性
访问
方式二:通过 实例对象.类属性
访问
class Person(object): # 类属性 num = 10p = Person()# 方式一print(Person.num)# 方式二print(p.num)
通过前面对于面向对象编程的操作,我们已经了解面向对象编程是指创造一个类(动物类,植物类等等)这些类有很多种特征(属性),这些特征又是如何实现(方法,函数)。那么面向对象就是就是针对某一类物体进行的介绍与方法
其实说白了面向对象是就是对代码进行封装,列表也是封装,字典元组集合也是如此,函数亦是如此,面向对象的三大特征是指:封装性,继承性还有多态性
创建一个乌龟类
class wugui(): color="绿色" foot=4 weight=10 has_guike=True #会爬 def crawl(self): print("乌龟会爬") #会吃 def eat(self): print("乌龟会吃") #会睡觉 def sleep(self): print("乌龟会睡觉")
面向对象要比函数变量更加体现出事物的特征
构造方法:
def __init__(self,......):
这个操作主要是构造特征的时候解释器会自动调用它,在括号内可以包含很多参数用逗号分割开,但是self是必不可少的
类体中的变量类型
所有函数之外,此范围定义的变量,称为类属性或类变量
函数内部,以self.变量名的方法定义但是变量,称为实例属性或实例变量
函数内部,以变量名=变量值的方法定义的变量称为局部变量
操作
class Dog(): def __init__(self, name, age): self.name = name self.age = age def sit(self): print(self.name.title() + " is now sitting.") def roll_over(self): print(self.name.title() + " rolled over!")
在c语言当中,曾经使用微信程序了解到,在一个程序运行的时候,程序从硬盘通过cpu的驱使下进入到内存中,程序是运行数据由诸多变量组成,变量的作用是存储数据,我们理解为变量在程序中开辟空间存储数据,再又小程序进行运行,变量像一个盒子装入了所有的数据
但是·在python中,变量和数据又有明显不同
在python中,数据自成空间进行运行,变量与数据没有包含关系,他的作用是用来保存数据的地址,它类似与c语言的指针,保存地址,指向这个数据完成代码等等运行
所以在python中,变量存储变量的地址就是变量的引用,在python中函数的参数传递和返回值都是靠变量的引用完成的
所以说在python中每次定义变量一定要对变量进行赋值,由于python的变量与数据的区别,所以必须必须有一个过程去访问赋值的地址,使用这个变量,这个过程就叫做引用
在给变量赋值的时候,本质上是修改了数据的引用
a=1b=aa=2
在这个赋值操作中,a的地址发生改变,但b没有
学啥啥不会,作业咋学都不会
1.
a=int(input("请输入你想创建的宠物资料个数"))pets_list=[]print("创建宠物信息")for i in range(a): #自行输入(宠物名字和主人名字) pet_name=input("请输入宠物名字") name=input("请输入主人名字") #现在将这些信息保存在字典中,字典的名字为这个宠物的名字 pet_name_dict={"pet_name":pet_name,"name":name} #自行创建一个宠物字典之后加入列表之中去 pets_list.append(pet_name_dict) #提示成功加入一个宠物字典 print("%s添加成功"%pet_name_dict["pet_name"]) print("功能:显示全部")# 判断是否有宠物字典记录if len(pets_list) == 0: print("提示:没有任何名片记录")else:# 2. 显示所有宠物字典 print("宠物/t/t主人") for pet_name_dict in pets_list: print("%s/t/t%s" % ( pet_name_dict["pet_name"], pet_name_dict["name"],))
2.
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/123080.html
摘要:后来知道有了院赛,学长说刷院和杭电就可,我就一直刷院,到最后比赛前院的前五十道基本做完,杭电也弄了十来道,就这样草草参加比赛了。 博客主页: https://b...
摘要:网上有很多前端的学习路径文章,大多是知识点罗列为主或是资料的汇总,数据量让新人望而却步。天了解一个前端框架。也可以关注微信公众号晓舟报告,发送获取资料,就能收到下载密码,网盘地址在最下方,获取教程和案例的资料。 前言 好的学习方法可以事半功倍,好的学习路径可以指明前进方向。这篇文章不仅要写学习路径,还要写学习方法,还要发资料,干货满满,准备接招。 网上有很多前端的学习路径文章,大多是知...
摘要:对于没有任何计算机基础的我,面临的挑战很多非相关专业,去找计算机专业工作会有很多障碍。学习阶段刚开始是学习语言,由于计算机专业大一就开始上课,所以我就去晚上去蹭语言的选修课,选修课老师讲的比较浅,这也对我这个没有一点基础的人比较友好。 说起跨专业,可能有好多同学都望而生畏,总觉得别人计算机专业的学生学了三年才找工作,我跨专业还怎么比得过别人? 其实不是这样的,觉得自己不行其实都是你还没...
摘要:对于没有任何计算机基础的我,面临的挑战很多非相关专业,去找计算机专业工作会有很多障碍。学习阶段刚开始是学习语言,由于计算机专业大一就开始上课,所以我就去晚上去蹭语言的选修课,选修课老师讲的比较浅,这也对我这个没有一点基础的人比较友好。 说起跨专业,可能有好多同学都望而生畏,总觉得别人计算机专业的学生学了三年才找工作,我跨专业还怎么比得过别人? 其实不是这样的,觉得自己不行其实都是你还没...
摘要:对于没有任何计算机基础的我,面临的挑战很多非相关专业,去找计算机专业工作会有很多障碍。学习阶段刚开始是学习语言,由于计算机专业大一就开始上课,所以我就去晚上去蹭语言的选修课,选修课老师讲的比较浅,这也对我这个没有一点基础的人比较友好。 说起跨专业,可能有好多同学都望而生畏,总觉得别人计算机专业的学生学了三年才找工作,我跨专业还怎么比得过别人? 其实不是这样的,觉得自己不行其实都是你还没...
阅读 1966·2021-11-23 10:08
阅读 2307·2021-11-22 15:25
阅读 3255·2021-11-11 16:55
阅读 743·2021-11-04 16:05
阅读 2528·2021-09-10 10:51
阅读 693·2019-08-29 15:38
阅读 1546·2019-08-29 14:11
阅读 3462·2019-08-29 12:42