首页 / PYTHON / python面向对象学习
python面向对象学习
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python面向对象学习,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2919字,纯文字阅读大概需要5分钟。
内容图文
![python面向对象学习](/upload/InfoBanner/zyjiaocheng/648/cc1aaf2abe3742f3bdd5dd777828da17.jpg)
面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
面向对象三个概念:
1.封装
即把客观事物封装成抽象的类,并且类可以把自己的数据和方法让可信的类进行操作,对不可信的进行隐藏
class Cat(Animal):
def bite(self):
print("猫咪咬")
lanmao = Cat()
2.继承
一个类可以继承其他一个类的属性和方法,比如我们定义一个动物类和猫咪类,猫咪继承动物,这样实例化一个猫咪对象时,猫咪也继承了动物类的跑方法
如果需要继承
class Animal:
def run(self):
print("跑得快")
class Cat(Animal):
def bite(self):
print("猫咪咬")
lanmao = Cat()
lanmao.run()
>>跑得快
使用继承时,通常会用到super()方法,在python2中,通常需要在super()中加上Object,python3不需要添加,可以使用super()提高代码的可复用性、可维护性
以下函数,Cat类继承Animal中的初始化中的方法
class Animal:
def __init__(self,life):
self.life = life
print(self.life)
class Cat(Animal):
def __init__(self,life):
super().__init__(life)
self.life = life
a = Animal(223)
mimi = Cat(45)
>>223
45
3.多态
看如下代码,当子类和父类都存在相同的run()方法时,我们说,子类的run()覆盖了父类的run(),在代码运行的时候,总是会调用子类的run()。这样,我们就获得了继承的另一个好处:多态。在子类调用run方法时,无论子类怎样调用,都不会影响到其他子类继承父类的方法去调用使用
class Animal:
def run(self):
print("跑得快")
class Cat(Animal):
def bite(self):
print("猫咪咬")
def run(self):
print("猫咪在跑")
class Dog(Animal):
def laugh(self):
print("小狗在笑")
lanmao = Cat()
wangcai = Dog()
lanmao.run()
wangcai.run()
>>猫咪在跑
跑得快
在业务编写时,需要发掘重要的业务领域概念,建立业务领域概念之间的关系,找名词,加属性,连关系
其中对象之间的还有各种依存关系,限于篇幅和笔者个人能力不一一赘述
class Role(object):
def __init__(self,name,role,weapon,attack,life_value = 100,money = 10000):
self.name = name
self.role =role
self.weapon = weapon
self.life_value = life_value
self.money = money
self.attack = attack
def shot(self,other):
print('%s 在射击' %self.name)
print('%s跟%s在中路拼枪' %(self.name,other.name))
self.life_value = int(self.life_value)-int(other.attack)
if self.life_value > 0:
print('%s活下来了,还剩下%s血'%(self.name,self.life_value))
else:
print('%s挂了,充点钱吧,充钱才能更强'%self.name)
def get_shot(self,attract):
# self.life_value -= int(attract)
print('%s 被射中了,还剩下%s 血' %(self.name,self.life_value))
def arm(self,gun):
self.attack =int(self.attack)+int(gun.attack)
self.weapon = gun.name
self.money =int(self.money)-int(gun.money)
print('%s %s 装备了%s,攻击力提升啦,竟然达到了惊人的%s 点' %(self.role,self.name,
self.weapon,self.attack))
print('%s 买了%s,还剩下 %s元钱' %(self.name,gun.name,self.money))
class Gun(object):
def __init__(self,name,attack,money):
self.name=name
self.attack = attack
self.money = money
ak47 = Gun('AK47','89','3000')
an94 = Gun('AN94','90','5000')
lsj = Role('lsj','police','knief',10)
wyz = Role('wyz','bandit','knief',10)
lsj.arm(ak47)
wyz.arm(an94)
lsj.shot(wyz)
wyz.shot(lsj)
内容总结
以上是互联网集市为您收集整理的python面向对象学习全部内容,希望文章能够帮你解决python面向对象学习所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。