• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python面向对象基础之常用魔术方法

    一、类和对象

    通俗理解:类就是模板对象就是通过模板创造出来的物体

    类(Class)由3个部分构成:

    类的名称: 类名

    类的属性: 一组数据

    类的方法: 允许对进行操作的方法 (行为)

    二、魔法方法

    在python中,有一些内置好的特定的方法,方法名是“__xxx__”,在进行特定的操作时会自动被调用,这些方法称之为魔法方法。下面介绍几种常见的魔法方法。

    1.__init__方法 :初始化一个 ,在创建实例对象为其 赋值 时使用。

    2.__str__方法:在将对象转换成字符串 str(对象) 测试的时候,打印对象的信息。

    3.__new__方法:创建并返回一个实例对象,调用了一次,就会得到一个对象。

    4.__class__方法:获得已知对象的类 ( 对象.class)。

    5.__del__方法:对象在程序运行结束后进行对象销毁的时候调用这个方法,来释放资源

    三、理解self

    self和对象指向同一个内存地址,可以认为self就是对象的引用。

    # 创建一个类 
    class Car(object): 
     	# 创建一个方法打印 self 的id 
     	def getself(self): 
     		print('self=%s'%(id(self))) 
     
    bmw = Car() 
    print(id(bmw))
    bmw.getself() 
    '''输出
    140033867265696 
    140033867265696 
    '''
    

    所谓的self,可以理解为对象自己,某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可。

    # 创建一个类 
    class Car(object): 
    	def __init__(self,name,colour): 
    		self.name = name 
    		self.colour = colour 
    	# 创建一个方法打印 self 的id 
    	def getself(self): 
    		print('self=%s'%(id(self))) 
    
    bmw = Car('宝马','黑色') 
    # 实例化对象时,self不需要开发者传参,python自动将对象传递给self 
    print(id(bmw)) 
    bmw.getself() 
    

    四、练习对战

    做两个人物对战

    import random
    import time
    #定义类
    class hero(object):
        # 定义属性
        def __init__(self,name,blood,dblood,ablood):
            self.name=name#名字
            self.blood=blood#血量
            self.dblood=dblood#这是减少的血量
            self.ablood=ablood
        #定义方法
        # 互捅
        def tong(self,enemy):
            enemy.blood-=self.dblood
            print('%s砍掉了%s%d的血量'%(self.name,enemy.name,self.dblood))
    
        def addblood(self):
            self.blood+=self.ablood
            print('%s吃了一颗补血药,加了%d血量'%(self.name,self.ablood))
    
        def __str__(self):
            return '%s 还剩下 %s 血' % (self.name, self.blood)
    
    xm = hero('西门吹雪',100,random.randint(10,20),random.randint(10,20))
    ygc = hero('叶孤城',100,random.randint(10,20),random.randint(10,20))
    
    x=[1,2]
    
    while xm.blood>=0 or ygc.blood>=0:
        if xm.blood=0:
            print('%s获胜'%ygc.name)
            break
            pass
        elif ygc.blood=0:
            print('%s获胜'%xm.name)
            break
        if 10=xm.blood =20:
            xm.addblood()
            pass
        elif 10 = ygc.blood = 20:
            ygc.addblood()
            pass
        if random.choice(x)%2==0:
            xm.tong(ygc)
            print(ygc)
            print(xm)
        else:
            ygc.tong(xm)
            print(ygc)
            print(xm)
        print('***'*10)
        time.sleep(1)
        pass
    

    到此这篇关于python面向对象基础之常用魔术方法的文章就介绍到这了,更多相关python魔术方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python面向对象编程基础实例分析
    • Python面向对象原理与基础语法详解
    • 谈一谈基于python的面向对象编程基础
    • Python面向对象基础入门之编码细节与注意事项
    • python基础:面向对象详解
    上一篇:PyTorch平方根报错的处理方案
    下一篇:如何使用python提取字符串的中英文(正则判断)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    python面向对象基础之常用魔术方法 python,面向,对象,基础,之,