发布于2020-02-25 14:54 阅读(876) 评论(0) 点赞(9) 收藏(3)
在 标识符 / 数据 后输入一个 .,然后按下 TAB 键,iPython 会提示该对象能够调用的 方法列表
使用内置函数 dir 传入 标识符 / 数据,可以查看对象内的 所有属性及方法
提示 __方法名__ 格式的方法是 Python 提供的 内置方法 / 属性
方法 的定义格式和之前学习过的函数 几乎一样
区别在于第一个参数必须是 self
对象变量 = 类名()
直接打印:输出16进制
使用id函数:输出10进制
可以直接在类的外部给对象增加属性,但是不推荐。
哪一个对象调用类的方法,self就是哪一个对象的引用。
如果 tom.name 的赋值语句在调用方法之后,将会报错。
所以,对象应该包含有哪些属性,应该封装在类的内部。
当使用 类名() 创建对象时,会 自动 执行以下操作:
这个 初始化方法 就是 __init__ 方法,__init__ 是对象的内置方法
__init__ 方法是 专门 用来定义一个类 具有哪些属性的方法!
在 Python 中
类似Java中的重写toString方法,原本直接打印对象输出的是内存地址,现在可以自定义输出内容。此方法必须返回一个字符串!
封装实例练习:
Soilder类与Gun类
class Gun:
def __init__(self,model):
self.model = model
self.bullet_count = 0
def add_bullet(self,count):
self.bullet_count += count
def shoot(self):
if self.bullet_count > 0:
print("shooting!!!!!!, now nums of bullet is %d" % self.bullet_count)
self.bullet_count -=1
else:
print("bullet is < 0 now")
return
class Soldier:
def __init__(self,name,gun):
self.name = name
self.gun = gun
def fire(self):
if self.gun is None:
print("I dont have a gun")
return
print("Soilder %s is using %s" % (self.name,self.gun.model))
self.gun.shoot()
g1 = Gun("AK47")
s1 = Soldier("士兵76",g1)
s1.gun.add_bullet(5)
s1.fire()
s1.fire()
s1.fire()
s1.fire()
s1.fire()
s1.fire()
s1.fire()
定义方式:
在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法。
class woman:
def __init__(self,name):
self.name = name
self.__age = 18
def __myAge(self):
print("My age is %d" % self.__age)
作者:追梦骚年
链接:https://www.pythonheidong.com/blog/article/233428/8c18dc1ff88228305afb/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!