python之对象(实例)
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之对象(实例)的更多相关文章
- Python中对象实例的__dict__属性
		实例的__dict__并不是一个方法,而是存储与该实例相关的实例属性的字典,对类中定义的方法(函数),方法名也是属性变量,类的__dict__存储所有实例共享的变量和函数(类属性,方法等),类的__d ... 
- Python的高级特性8:你真的了解类,对象,实例,方法吗
		Python的高级特性1-7系列是本人从Python2过渡3时写下的一些个人见解(不敢说一定对),接下来的系列主要会以类级为主. 类,对象,实例,方法是几个面向对象的几个基本概念,其实我觉得很多人并不 ... 
- Python笔记(七):字典、类、属性、对象实例、继承
		(一) 简单说明 字典是Python的内置数据结构,将数据与键关联(例如:姓名:张三,姓名是键,张三就是数据).例如:下面这个就是一个字典 {'姓名': '张三', '出生日期': '2899-08 ... 
- python基础——类名称空间与对象(实例)名称空间
		python基础--类名称空间与对象(实例)名称空间 1 类名称空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类的良好总属性:数据属性和函数属性 其中类 ... 
- python 全栈开发,Day18(对象之间的交互,类命名空间与对象,实例的命名空间,类的组合用法)
		一.对象之间的交互 现在我们已经有一个人类了,通过给人类一些具体的属性我们就可以拿到一个实实在在的人.现在我们要再创建一个狗类,狗就不能打人了,只能咬人,所以我们给狗一个bite方法.有了狗类,我们还 ... 
- python基础之类和对象、对象之间的交互、类名称空间与对象/实例名称空间
		一 面向对象初识 Python要么是面向过程要么是面向对象. 概念及优缺点: 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东 ... 
- Python()-类命名空间和对象/实例命名空间
		类命名空间和对象/实例命名空间: 创建类, 就会创建一个类的名称空间, 空间:存储类的属性 属性: 静态属性:直接定义在类下面 & 和类名关联 的变量 对象属性:在类内和self关联 & ... 
- python 类和实例
		面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可 ... 
- python面对对象编程------4:类基本的特殊方法__str__,__repr__,__hash__,__new__,__bool__,6大比较方法
		一:string相关:__str__(),__repr__(),__format__() str方法更面向人类阅读,print()使用的就是str repr方法更面对python,目标是希望生成一个放 ... 
- python中对象、类型和元类之间的关系
		在python中对象.类型和元类构成了一个微妙的世界. 他们有在这个世界里和平共处,相辅相成.它们遵循着几条亘古不变的定律: 1.python中无处不对象 2.所有对象都有三种特性:id.类型.值 3 ... 
随机推荐
- 各厂商服务器存储默认管理口登录信息(默认IP、用户名、密码)收集
			666:https://blog.csdn.net/xiezuoyong/article/details/84997917 
- GIT 数据结构
			Git doesn’t think of or store its data this way. Instead, Git thinks of its data more like a series ... 
- es6 新增数据类型Symbol
			es6在string number boolean null undefined object之外又新增了一种Symbol类型. Symbol意思是符号,有一个特性—每次创建一个Symbol值都是不一 ... 
- 如何扩展Orchard
			翻译自: http://msdn.microsoft.com/en-us/magazine/hh708754.aspx 动态类型系统 Content item是Orchard中的原子, 比如b ... 
- autio的自动播放问题
			最近做年会相关内容,背景音乐插入了,电脑上没问题,移动版就出事了,下面做一下记录 <audio src="" autoplay="autoplay" l ... 
- Codeforces 1136E Nastya Hasn't Written a Legend  线段树
			vp的时候没码出来.. 我们用set去维护, 每一块区域, 每块区域内的元素与下一个元素的差值刚好为ki,每次加值的时候我们暴力合并, 可以发现我们最多合并O(n)次. 然后写个线段树就没了. #in ... 
- 计划任务_crontab
			1. crontab原理和使用 Cron 实际上是两个独立的程序.Cron damon, 或者叫做cron ,crond 它是伴随系统一起启动的常驻程序 来检查是否cron 在系统上运行, 用ps 命 ... 
- js 时间动画优化
			function moveDivTimeBasedImprove(div, fps) { var left = 0; var current = +new Date; var previous = + ... 
- PHP远程下载图片,微信头像存到本地,本地图片转base64
			方法一(推荐): function download_remote_pic($url){ $header = [ 'User-Agent: Mozilla/5.0 (Windows NT 6.1; W ... 
- AtCoder Grand Contest 026 (AGC026) E - Synchronized Subsequence 贪心 动态规划
			原文链接https://www.cnblogs.com/zhouzhendong/p/AGC026E.html 题目传送门 - AGC026E 题意 给定一个长度为 $2n$ 的字符串,包含 $n$ ... 
