全面了解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开发的小球完全弹性碰撞游戏代码
Oct 15 Python
python中文编码问题小结
Sep 28 Python
零基础写python爬虫之爬虫编写全记录
Nov 06 Python
python+tkinter编写电脑桌面放大镜程序实例代码
Jan 16 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
Python简单爬虫导出CSV文件的实例讲解
Jul 06 Python
利用Python进行数据可视化常见的9种方法!超实用!
Jul 11 Python
Python爬虫框架Scrapy基本用法入门教程
Jul 26 Python
Python爬虫框架scrapy实现的文件下载功能示例
Aug 04 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 Python
浅析pandas随机排列与随机抽样
Jan 22 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+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
php+mysql事务rollback&amp;commit示例
2010/02/08 PHP
php查找任何页面上的所有链接的方法
2013/12/03 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
2013/02/02 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
js Date概念详细介绍
2013/11/22 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
react组件基本用法示例小结
2020/04/27 Javascript
Python读写Redis数据库操作示例
2014/03/18 Python
Python中isnumeric()方法的使用简介
2015/05/19 Python
python的继承知识点总结
2018/12/10 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
python -v 报错问题的解决方法
2020/09/15 Python
HTML5和CSS3让网页设计提升到下一个高度
2009/08/14 HTML / CSS
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
求职推荐信
2013/10/28 职场文书
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
团员个人的自我评价
2013/12/02 职场文书
农村党员一句话承诺
2014/05/30 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
党员国庆节演讲稿范文2014
2014/09/21 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS