全面了解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高效编程技巧
Jan 07 Python
python基础教程之常用运算符
Aug 29 Python
python非递归全排列实现方法
Apr 10 Python
利用python实现简单的邮件发送客户端示例
Dec 23 Python
python flask实现分页的示例代码
Aug 02 Python
使用coverage统计python web项目代码覆盖率的方法详解
Aug 05 Python
关于Numpy中的行向量和列向量详解
Nov 30 Python
python垃圾回收机制(GC)原理解析
Dec 30 Python
python对象销毁实例(垃圾回收)
Jan 16 Python
利用Python自动化操作AutoCAD的实现
Apr 01 Python
python访问hdfs的操作
Jun 06 Python
解决Keras中CNN输入维度报错问题
Jun 29 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
基于empty函数的输出详解
2013/06/17 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
2019/10/03 PHP
javascript dom代码应用 简单的相册[firefox only]
2010/06/12 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
javascript常用的设计模式
2017/02/09 Javascript
初识NodeJS服务端开发入门(Express+MySQL)
2017/04/07 NodeJs
Bootstrap弹出框(Popover)被挤压的问题小结
2017/07/11 Javascript
微信小程序“摇一摇”的实例代码
2017/07/20 Javascript
详解Nuxt.js 实战集锦
2019/11/19 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
Vue中ref和$refs的介绍以及使用方法示例
2021/01/11 Vue.js
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
2021/02/24 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
python对url格式解析的方法
2015/05/13 Python
Python数据结构与算法之图结构(Graph)实例分析
2017/09/05 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
pandas分组聚合详解
2020/04/10 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
西雅图的买手店:Totokaelo
2019/10/19 全球购物
工程项目经理岗位职责
2013/12/15 职场文书
教师业务学习材料
2014/12/16 职场文书
校长师德表现自我评价
2015/03/04 职场文书
自主招生专家推荐信
2015/03/26 职场文书
会议简报格式范文
2015/07/20 职场文书
win sever 2022如何占用操作主机角色
2022/06/25 Servers