全面了解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使用socket向客户端发送数据的方法
Apr 29 Python
python算法演练_One Rule 算法(详解)
May 17 Python
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
Aug 18 Python
Python文件循环写入行时防止覆盖的解决方法
Nov 09 Python
Python3多线程基础知识点
Feb 19 Python
Python 控制终端输出文字的实例
Jul 12 Python
python多线程并发及测试框架案例
Oct 15 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
520使用Python实现“我爱你”表白
May 20 Python
利用pipenv和pyenv管理多个相互独立的Python虚拟开发环境
Nov 01 Python
Django利用elasticsearch(搜索引擎)实现搜索功能
Nov 26 Python
Jupyter Notebook 远程访问配置详解
Jan 11 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
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
PDO::_construct讲解
2019/01/27 PHP
有效的捕获JavaScript焦点的方法小结
2009/10/08 Javascript
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
web前端开发也需要日志
2010/12/09 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
2013/11/19 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
关于JS解构的5种有趣用法
2019/09/05 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
ant design vue中日期选择框混合时间选择器的用法说明
2020/10/27 Javascript
python开发之文件操作用法实例
2015/11/13 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
Django实现web端tailf日志文件功能及实例详解
2019/07/28 Python
Django如何将URL映射到视图
2019/07/29 Python
sklearn的predict_proba使用说明
2020/06/28 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
python3让print输出不换行的方法
2020/08/24 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
戛纳奢侈品商店:Jacques Loup法国
2019/11/04 全球购物
玲玲的画教学反思
2014/02/04 职场文书
实用的简历自我评价
2014/03/06 职场文书
yy婚礼司仪主持词
2014/03/14 职场文书
班级标语大全
2014/06/21 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL