码迷,mamicode.com
首页 > 编程语言 > 详细

python\对象(实例)

时间:2017-04-24 19:47:47      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:例子   功能   object   __init__   自己的   函数   attr   bsp   method   

1.对象是关于类而实际存在的一个例子,即实例

#类实例化得到g1这个实例

class Garen:

    camp=‘Demacia‘

    def __init__(self,nickname,aggressivity=58,life_value=455):

        self.nickname=nickname  #为自己的盖伦起个别名;

        self.aggressivity=aggressivity #英雄都有自己的攻击力;

        self.life_value=life_value #英雄都有自己的生命值;

    def attack(self,enemy):

        print("attack %s" % enemy)

 

g1=Garen(‘草丛伦‘)

 

1.1 对象的属性引用和绑定方法

 

(1)对象(实例)只有一种作用:属性引用

格式: 实例名.类的变量名

       实例名.绑定方法

       实例名.实例自己的变量名

print(g1.nickname)

print(g1.aggressivity)

print(g1.life_value)

输出结果为:

草丛伦

58

455

 

(2)对象的属性操作

查看属性信息

print(g1.nickname)

输出结果:

草丛伦

 

修改属性信息

g1.nickname="伦哥"

print(g1.nickname)

输出结果为:

伦哥

 

添加属性

g1.sex="female"

print(g1.sex)

输出结果为:

Female

 

删除属性:

del g1.sex

print(g1.sex)

输出结果为:

AttributeError: ‘Garen‘ object has no attribute ‘sex‘ #报错

 

(3)查看实例属性

同样是dir和内置__dict__两种方式

特殊实例属性

__class__

__dict__

 

(4)对象(实例)的绑定方法

对象本身只有数据属性,但是python的class机制会将类的函数绑定到对象上,称为对象的方法,或者叫绑定方法。

print(g1.attack)      #对象的绑定方法

print(Garen.attack)   #对象的绑定方法attack本质就是调用类的函数attack的功能,二者是一种绑定关系

输出结果为:

<bound method Garen.attack of <__main__.Garen object at 0x00000017370815F8>>

<function Garen.attack at 0x0000001737085048>

 

对象的绑定方法的特别之处在于:obj.func()会把obj传给func的第一个参数

 

1.2 对象的交互

 

仿照Garen类创建一个Riven类:

实例Riven类

交互:瑞雯攻击草丛伦

class Riven:

    camp=‘Noxus‘

    def __init__(self,nickname,aggressivity=54,life_value=414):

        self.nickname=nickname  #为自己的瑞雯起个别名;

        self.aggressivity=aggressivity #英雄都有自己的攻击力;

        self.life_value=life_value #英雄都有自己的生命值;

    def attack(self,enemy):

        print("attack %s" % enemy)

        enemy.life_value -= self.aggressivity

 

g1=Garen(‘草丛伦‘)

r1=Riven(‘瑞雯‘)

print(g1.life_value)

r1.attack(g1)

print(g1.life_value)

输出结果为:

455

瑞雯 attack 草丛伦

401

python\对象(实例)

标签:例子   功能   object   __init__   自己的   函数   attr   bsp   method   

原文地址:http://www.cnblogs.com/asaka/p/6758378.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!