全面了解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 相关文章推荐
用pywin32实现windows模拟鼠标及键盘动作
Apr 22 Python
Python库urllib与urllib2主要区别分析
Jul 13 Python
python基础教程之Filter使用方法
Jan 17 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 Python
Pandas标记删除重复记录的方法
Apr 08 Python
Django migrations 默认目录修改的方法教程
Sep 28 Python
python TKinter获取文本框内容的方法
Oct 11 Python
python实现诗歌游戏(类继承)
Feb 26 Python
python求绝对值的三种方法小结
Dec 04 Python
Python 私有属性和私有方法应用场景分析
Jun 19 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
Nov 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
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
传递参数的标准方法(jQuery.ajax)
2008/11/19 Javascript
捕获关闭窗口的脚本
2009/01/10 Javascript
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
jquery多选项卡效果实例代码(附效果图)
2013/03/23 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
详解Bootstrap按钮
2016/01/04 Javascript
开启BootStrap学习之旅
2016/05/04 Javascript
jQuery:unbind方法的使用详解
2017/08/14 jQuery
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
JS构造一个html文本内容成文件流形式发送到后台
2018/07/31 Javascript
javascript实现日历效果
2019/06/17 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
Python计算斗牛游戏概率算法实例分析
2017/09/26 Python
python做量化投资系列之比特币初始配置
2018/01/23 Python
Python中pillow知识点学习
2018/04/30 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
2013/01/09 HTML / CSS
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
观看《永远的雷锋》心得体会
2014/03/12 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
趵突泉导游词
2015/02/03 职场文书
电子商务专业求职信范文
2015/03/19 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
高二语文教学反思
2016/02/16 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
分享python函数常见关键字
2022/04/26 Python