博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python基础之初识类和对象
阅读量:5135 次
发布时间:2019-06-13

本文共 3645 字,大约阅读时间需要 12 分钟。

  我们在前面学习了解了面向过程编程,接下来我们一起来学习一下面向对象编程。其实不管是面向过程,还是面向对

象,说白了就是一种编程方式而已。既然是面向对象编程,顾名思义,此编程方式的落地需要使用 “类” 和 “对象” 来实

现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。

  基本概念:

  类就是一个模板,模板里可以包含多个函数,函数里实现一些功能

  对象则是根据模板创建的实例,通过实例对象可以执行类中的函数

  如何创建一个类:

  1、class是关键字,表示类

  2、创建对象,类名称后加括号即可

  如何使用类:

  一、实例化:

#创建了一个名为people的类class people:    gender = "male" #共有的特征    def print_name(self):        print("print_name-----> %s"%self)x = int(6) #int一个值,赋值给xprint(x) #打印输出x的值obj = people() #people加括号会返回一个值,并赋值给obj,这就实例化print(obj) #打印输出obj的值-------------输出结果-------------------6 #x的值<__main__.people object at 0x00000000028C9C88> #得到的就是一个对象

  二、引用类的特征(类的变量)和技能(类的函数)

#创建了一个名为people的类class people:    gender = "male"    def print_name(self):        print("print_name-----> %s"%self)print(people.gender) #类名.变量名,打印这个类的共有特征,性别print(people.print_name) #类名.函数名,打印这个函数的返回值people.print_name("michael") #类名.函数名加括号调用函数并传了一个参数-----------------------输出结果------------------------male #共有特征是男
#返回值的内存地址print_name-----> michael #函数运行结果

  如何使用实例:

#创建了一个名为people的类class people:    gender = "male"    def __init__(self,nickname):        self.nick = nickname    def print_name(self,age):        print("%s's age is %s"%(self.nick,age))p1 = people("michael") #类名加括号里传参数调用会返回一个值,赋值给p1得到一个具体的对象p2 = people("jack") #类名加括号里传参数调用会返回一个值,赋值给p2得到一个具体的对象print(p1.nick) #打印对象p1的名字print(p2.nick) #打印对象p2的名字print(p1.gender) #打印所有对象共有的特征,性别print(p2.gender) #打印所有对象共有的特征,性别print(p1.print_name) #打印p1的绑定方法的返回值print(people.print_name) #打印 类名.函数名 的返回值p1.print_name(18) #self=p1就是p1自己本身的值传给位置参数selfpeople.print_name(p2,23) #这个结果同上是一样的,只是在位置参数那直接传的p1-----------------------------输出结果---------------------------------------michael #p1.nick的名字jack #p2.nick的名字male #共有特征,男male #共有特征,男
> #实例化对象的绑定方法的返回值的内存地址
#类名.函数名的返回值的内存地址michael's age is 18 #绑定方法传参的执行结果jack's age is 23 #类名.函数名 直接传参执行的结果

  总结:

  类:

  1、实例化;

  2、引用名字(类名.变量名,类名.函数名)。

  实例:

  引用名字(实例名.类的变量,实例名.绑定方法,实例名.实例自己的变量名)。

   其他:

  1、类对变量的:增、删、改、查。

#创建了一个名为people的类class people:    gender = "male"    marital_status = "bachelordom"    def __init__(self,nickname):        self.nick = nickname    def print_name(self,age):        print("%s's age is %s"%(self.nick,age))people.interest = "python" #类people中共有特征,增加爱好print("共同爱好:",people.interest) #将结果输出打印people.marital_status = "married" #经过不断的努力学习Python后,都成功脱单,修改婚姻状态print("修改后的婚姻状况:",people.marital_status) #将结果输出打印print("性别:",people.gender) #查看类people的共有特征,性别del people.marital_status #删除婚姻状况变量名print(people.marital_status) #查看删除结果,报错说明删除成功---------------------------输出结果------------------------------------共同爱好: python修改后的婚姻状况: married性别: maleTraceback (most recent call last):  File "F:/Michael/day26/类和对象.py", line 79, in 
print(people.marital_status) #查看删除结果,报错说明删除成功AttributeError: type object 'people' has no attribute 'marital_status'

  2、实例化,对对象对应的变量的:增、删、改、查。

#创建了一个名为people的类class people:    gender = "male"    marital_status = "bachelordom"    def __init__(self,nickname):        self.nick = nickname    def print_name(self,age):        print("%s's age is %s"%(self.nick,age))p1 = people("michael") #类名加括号里传参数调用会返回一个值,赋值给p1得到一个具体的对象p1.interest = "basketball" #为对象p1增加爱好,篮球print("增加的爱好:",p1.interest) #结果输出打印p1.marital_status = "married" #经过不断的努力学习Python后,都成功脱单,修改婚姻状态print("修改后的婚姻状况:",p1.marital_status) #结果输出打印print("查看p1的名字:",p1.nick) #查看p1的名字del p1.marital_status #删除p1婚姻状况print("原婚姻状态:",p1.marital_status) #查看删除结果,未修改原状态则删除成功-----------------------------输出结果-------------------------------------增加的爱好: basketball修改后的婚姻状况: married查看p1的名字: michael原婚姻状态: bachelordom

  

 

转载于:https://www.cnblogs.com/Michael--chen/p/6710625.html

你可能感兴趣的文章
按照excel文档中的内容在当前cad图纸中自动排布实体
查看>>
Winform开发框架之图表报表在线设计器2-图表-SNF.EasyQuery项目--SNF快速开发平台3.3-Spring.Net.Framework...
查看>>
C#基础第八天-作业-设计类-面向对象方式实现两个帐户之间转账
查看>>
洛谷 P3237 [HNOI2014]米特运输
查看>>
Attributes.Add用途与用法
查看>>
JavaScript面向对象初探——封装和继承
查看>>
L2-001 紧急救援 (dijkstra+dfs回溯路径)
查看>>
【概率】poj 2096:Collecting Bugs
查看>>
javascript 无限分类
查看>>
【自制插件】MMD4Maya
查看>>
解决linux服务器乱码
查看>>
mapbox.gl文字标注算法基本介绍
查看>>
【C++】异常简述(二):C++的异常处理机制
查看>>
web.config在哪里
查看>>
SQL Server 2000 版本支持的最大物理内存量
查看>>
spring IOC装配Bean(注解方式)
查看>>
FTP服务器的搭建和使用(centos7)
查看>>
[面试算法题]有序列表删除节点-leetcode学习之旅(4)
查看>>
SpringBoot系列五:SpringBoot错误处理(数据验证、处理错误页、全局异常)
查看>>
MyEclipse搭建SSM框架(Spring+MyBatis+SpringMVC)
查看>>