全面了解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类参数self使用示例
Feb 17 Python
python获取android设备的GPS信息脚本分享
Mar 06 Python
Python实现字符串格式化输出的方法详解
Sep 20 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
python实现屏保计时器的示例代码
Aug 08 Python
python 执行文件时额外参数获取的实例
Dec 18 Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 Python
简单了解Django应用app及分布式路由
Jul 24 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
Sep 29 Python
python3图片文件批量重命名处理
Oct 31 Python
python中的逆序遍历实例
Dec 25 Python
Pytorch 使用不同版本的cuda的方法步骤
Apr 02 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生成便于打印的网页
2006/10/09 PHP
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
Yii框架实现多数据库配置和操作的方法
2017/05/25 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
从jquery的过滤器.filter()方法想到的
2013/09/29 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
详解html-webpack-plugin用法全解
2018/01/22 Javascript
实时监控input框,实现输入框与下拉框联动的实例
2018/01/23 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
解决VUE中document.body.scrollTop为0的问题
2018/09/15 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
pytyon 带有重复的全排列
2013/08/13 Python
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
使用Python的urllib2模块处理url和图片的技巧两则
2016/02/18 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
Python递归函数实例讲解
2019/02/27 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
html5写一个BUI折叠菜单插件的实现方法
2019/09/11 HTML / CSS
泰国网上购物:Shopee泰国
2018/09/14 全球购物
new修饰符是起什么作用
2015/06/28 面试题
表彰先进的通报
2014/01/31 职场文书
新店开张活动方案
2014/08/24 职场文书
改作风抓落实促发展心得体会
2014/09/10 职场文书
学校食堂标语
2014/10/06 职场文书
《女娲补天》教学反思
2016/02/20 职场文书