全面了解python中的类,对象,方法,属性


Posted in Python onSeptember 11, 2016

python中一切皆为对象,所谓对象:我自己就是一个对象,我玩的电脑就是对象,坐着的椅子就是对象,家里养的小狗也是一个对象。。。。。。

我们通过描述属性(特征)和行为来描述一个对象的。比如家里的小狗,它的颜色,大小,年龄,体重等是它的属性或特征。它会汪汪叫,会摇尾巴等是它的行为。

我们在描述一个真实对象(物体)时包括两个方面:

它可以做什么(行为)

它是什么样的(属性或特征)。

python中,一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method

结论:对象=属性+方法

python中,把具有相同属性和方法的对象归为一个类(class

比如人类,动物,植物等等,这些都是类的概念。

类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物。

>>> class people: 

...   def speak(self): 

...       print ("hello!") 

...

'''

定义一个people类,定义一个speak方法,但没有定义属性,

因为属性不属于类,而是属于各个类的实例。也就是说属于对象。

因此我们可以给每个实例设置不同的属性

'''  
>>> class people:          #类  
...   def speak(self):      #方法        
...       print ("hello!")        
... 
>>> 

>>> jack = people()  #创建jack实例
>>> tom = people()  #创建tom实例
>>> import tab    #导入table键功能模块
>>> jack.      #输入jack.,可以看到以下方法
jack.__class__  jack.__doc__   jack.__module__ jack.speak(   
>>> jack.speak()  #引用speak方法
hello!

>>> jack.age=39      #添加age属性
>>> jack.height=120    #添加height属性
>>> jack.
jack.__class__  jack.__module__ jack.height   
jack.__doc__   jack.age     jack.speak(   
>>> jack.height
120
>>> jack.age
39

'''

#初始化对象

创建类时,可以定义一个特定的方法,名为__init__(),只要创建这个类的一个实例

就会运行这个方法。可以向__init__()方法传递参数,

这样创建对象时就可以把属性设置为你希望的值

__init__()这个方法会在创建对象时完成初始化,

'''
>>> class peo:
...   def __init__(self,name,age,sex):
...       self.Name = name
...       self.Age = age
...       self.Sex = sex
...   def speak(self):
...       print "my name" + self.Name
... 
>>> 

实例化这个类的对象时:
>>> zhangsan=peo("zhangsan",24,'man')
>>> print zhangsan.Age
24
>>> print zhangsan.Name
zhangsan
>>> print zhangsan.Sex
man

# ----------
>>> print zhangsan
<__main__.peo instance at 0x7fe5041ec248>
'''

要让print能打印出来,就得使用__str__方法

__str__()这个方法告诉python在打印(print)一个对象时,具体显示什么内容

'''
#! /usr/bin/python
class peo:
  def __init__(self,name,age,sex):
    self.Name = name
    self.Age = age
    self.Sex = sex
  def speak(self):
    print "my name" + self.Name
  def __str__(self):
    msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex
    # msg='my name is: ' +self.Name+ ","+ "my age is: " + str(self.Age) +','+ "my sex is:" +self.Sex
    return msg
shanghai=peo('shanghai','23','man')
# shanghai=peo('shanghai',23,'man')
'''
msg='my name is: ' +self.Name+ ","+ "my age is: " + self.Age +','+ "my sex is:" +self.Sex

此处23是年龄,但被转成了字符串,因为self.Age定义的是字符串

如果不将23转义,则会报错

如果希望在程序中就事先转义,需要使用str(self.Age)

'''
print shanghai

'''
之前多次用到self这个形参
类就好比是一张蓝图,使用一个类可以创建多个对象实例,
speak()方法在被调用时,必须知道是哪个对象调用了它.

这里self参数就会告诉方法是哪个对象来调用的.这称为实例引用。
zhangsan。speak()就好比写成了peo.speak(zhangsan)
'''

以上这篇全面了解python中的类,对象,方法,属性就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python求列表交集的方法汇总
Nov 10 Python
Python 多进程和数据传递的理解
Oct 09 Python
详解Python3的TFTP文件传输
Jun 26 Python
python实现简易动态时钟
Nov 19 Python
python下载微信公众号相关文章
Feb 26 Python
对python中的控制条件、循环和跳出详解
Jun 24 Python
通过实例了解Python str()和repr()的区别
Jan 17 Python
Python常用编译器原理及特点解析
Mar 23 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
Apr 14 Python
Django自关联实现多级联动查询实例
May 19 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
Jul 01 Python
Python Celery异步任务队列使用方法解析
Aug 10 Python
Python读取图片属性信息的实现方法
Sep 11 #Python
python开发环境PyScripter中文乱码问题解决方案
Sep 11 #Python
基于asyncio 异步协程框架实现收集B站直播弹幕
Sep 11 #Python
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 #Python
Python中使用asyncio 封装文件读写
Sep 11 #Python
Python 如何访问外围作用域中的变量
Sep 11 #Python
Python优化技巧之利用ctypes提高执行速度
Sep 11 #Python
You might like
laravel安装和配置教程
2014/10/29 PHP
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
分享PHP守护进程类
2015/12/30 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
jQuery实现checkbox全选的方法
2015/06/10 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
JavaScript基础篇(3)之Object、Function等引用类型
2015/11/30 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
vue.js组件之间传递数据的方法
2017/07/10 Javascript
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
js 开发之autocomplete=&quot;off&quot;在chrom中失效的解决办法
2017/09/28 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
前端防止用户重复提交js实现代码示例
2018/09/07 Javascript
vue 中url 链接左边的小图标更改问题
2019/12/30 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
python re正则表达式模块(Regular Expression)
2014/07/16 Python
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
python实现中文文本分句的例子
2019/07/15 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
css3的动画特效之动画序列(animation)
2017/12/22 HTML / CSS
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
澳大利亚家具商店:Freedom
2020/12/17 全球购物
杭州-DOTNET笔试题集
2013/09/25 面试题
电子信息专业学生自荐信
2013/11/09 职场文书
优秀员工自荐书范文
2013/12/08 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
先进个人总结范文
2015/02/15 职场文书
工作感想范文
2015/08/07 职场文书
三八节祝酒词
2015/08/11 职场文书
干部外出学习心得体会
2016/01/18 职场文书
golang判断key是否在map中的代码
2021/04/24 Golang