全面了解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使用urllib模块和pyquery实现阿里巴巴排名查询
Jan 16 Python
python实现在windows下操作word的方法
Apr 28 Python
JSON Web Tokens的实现原理
Apr 02 Python
浅谈解除装饰器作用(python3新增)
Oct 15 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
python使用knn实现特征向量分类
Dec 26 Python
使用python opencv对目录下图片进行去重的方法
Jan 12 Python
centos 安装Python3 及对应的pip教程详解
Jun 28 Python
Python绘制热力图示例
Sep 27 Python
Python3 把一个列表按指定数目分成多个列表的方式
Dec 25 Python
PyCharm第一次安装及使用教程
Jan 08 Python
Python实现Telnet自动连接检测密码的示例
Apr 16 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动态生成JavaScript代码
2009/03/09 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
Yii框架结合sphinx,Ajax实现搜索分页功能示例
2016/10/18 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
JavaScript库 开发规则
2009/01/31 Javascript
预加载css或javascript的js代码
2010/04/23 Javascript
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
JQuery Tips相关(1)----关于$.Ready()
2014/08/14 Javascript
基于jQuery实现搜索关键字自动匹配功能
2020/03/26 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
jQuery实现可展开折叠的导航效果示例
2016/09/12 Javascript
深入理解vue $refs的基本用法
2017/07/13 Javascript
详解webpack require.ensure与require AMD的区别
2017/12/13 Javascript
vue实现Excel文件的上传与下载功能的两种方式
2019/06/28 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
[01:00:04]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第二局
2016/02/26 DOTA
python字典的常用操作方法小结
2016/05/16 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
Python实现的远程文件自动打包并下载功能示例
2019/07/12 Python
详解python中eval函数的作用
2019/10/22 Python
Python如何实现FTP功能
2020/05/28 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
Python 如何查找特定类型文件
2020/08/17 Python
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
小学毕业典礼主持词
2014/03/27 职场文书
校园元旦活动总结
2014/07/09 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
实习证明模板
2015/06/16 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android