全面了解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实现网页链接提取的方法分享
Feb 25 Python
Python中os和shutil模块实用方法集锦
May 13 Python
将图片文件嵌入到wxpython代码中的实现方法
Aug 11 Python
python自动化测试之连接几组测试包实例
Sep 28 Python
在Python中使用NLTK库实现对词干的提取的教程
Apr 08 Python
Python随机生成手机号、数字的方法详解
Jul 21 Python
Python如何生成树形图案
Jan 03 Python
Python 数据处理库 pandas 入门教程基本操作
Apr 19 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
Python实现AI自动抠图实例解析
Mar 05 Python
python读取excel进行遍历/xlrd模块操作
Jul 12 Python
用python开发一款操作MySQL的小工具
May 12 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数组输出html表格的方法
2014/02/24 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
2012/02/27 Javascript
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
详解JavaScript设计模式开发中的桥接模式使用
2016/05/18 Javascript
原生js实现ajax方法(超简单)
2016/09/20 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
Vue源码探究之虚拟节点的实现
2019/04/17 Javascript
js定义类的方法示例【ES5与ES6】
2019/07/30 Javascript
vue+elementui 对话框取消 表单验证重置示例
2019/10/29 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
[01:11:46]DOTA2-DPC中国联赛 正赛 iG vs Magma BO3 第一场 2月23日
2021/03/11 DOTA
python网络编程实例简析
2014/09/26 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
python pygame实现2048游戏
2018/11/20 Python
pyqt远程批量执行Linux命令程序的方法
2019/02/14 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
使用TensorFlow对图像进行随机旋转的实现示例
2020/01/20 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
全球酒店比价网:HotelsCombined
2017/06/20 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
教师辞职报告范文
2014/01/20 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
批评与自我批评总结
2014/10/17 职场文书
JavaScript设计模式之原型模式详情
2022/06/21 Javascript