python 格式化、set类型和class类基础知识练习(下)

简介: lambda 参数1,参数2,参数3:表达式 特点: 1.使用lambda关键字创建函数 2.没有名字的函数 3.匿名函数冒号后面的表达式有且只有一个,是表达式不是语句 4.自带return

20 在类的内部,使用def定义的为实例方法,第一个参数为self,实例方法归实例所有



21 添加实例属性



class People:
    name = 'zhan',
    age = 20,
    def eat(self):
        print('正在吃饭')
# 创建对象
people = People()
people.eat()
# 添加属性
people.name2 = 'zhan'
people.age2 = 22


22. 类的__init__()方法


class People:
    # 初始化的操作,实例属性,自动执行
    def __init__(self):
        self.name = 'zhan'
        self.age = 20
    def eat(self):
        print('正在吃饭')
# 创建对象
people = People()
people.eat()


23. 类的__init__()使用参数



class People:
    # 初始化的操作,实例属性,自动执行
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def eat(self,food):
        print(self.name+food)
# 创建对象
people = People('叫我詹躲躲', 20)
people.eat('正在吃饭')
people.eat('洗澡')
people.eat('跑步')


24 理解类的self


# 类似于js里面的this
class Person:
    def eat(self):
        print(id(self))
        pass
    pass
person = Person()
person.eat()
print(id(person)) 
# self和对象指向同一个内存地址,self就是对象的引用
#<__main__.Person object at 0x0000020864815CC0>


25 魔术方法



__init__ :初始化实例属性
__str__ :自定义对象的格式
__new__ :对象实例化
__class__
__del__


class Animal:
    def __str__(self):
        return '3213213123123'
        pass
    pass
animal = Animal()
print(animal) 
class Animal:
    def __str__(self):
        return '3213213123123'
        pass
    pass
    def __new__(cls,*args,**kwargs):
        print("----new执行---")
        return object.__new__(cls) #真正创建对象实例的
        pass
animal = Animal()
print(animal) 
# __new__ 和__init__的区别

__new__ 类的实例化方法,必须返回实例,否则创建不成功

__init__数据属性的初始化工作,认为是实例的构造方法,接受实例化self并对其进行构造


__new__ 至少一个参数是cls,代表要实例化的类

__new__ 执行要比__init__早


26 案例练习 决战紫禁之巅



# 属性:
# name:玩家名称
# blood:血量
# 方法:
# tong() 捅一刀,掉10滴血
# kanren() 砍一刀掉15滴血
# chiyao() 补血10滴血
# __str__打印玩家的状态
class Role:
    def __init__(self,name,blood):
        self.name = name
        self.blood = blood
        pass
    # 砍人
    def tong(self,enemy):
        enemy.blood -=10
        info = '【%s】捅了【%s】一刀'%(self.name,enemy.name)
        print(info)
        pass
    # 砍人
    def kanren(self,enemy):
        enemy.blood -=15
        info = '【%s】砍了【%s】一刀'%(self.name,enemy.name)
        print(info)
        pass
    # 吃药
    def chiyao(self):
        self.blood +=10
        info = '【%s】吃了一口药,增加10滴血'%(self.name)
        print(info)
        pass
    def __str__(self):
        return '%s还剩下%s的血量'%(self.name,self.blood)
xmcx = Role('西门吹雪',100)
ygc = Role('叶孤城',100)
while True:
    if xmcx.blood<=0 or ygc.blood<=0:
        break
    print('*********************')
    xmcx.tong(ygc)
    xmcx.kanren(ygc)  
    print('*********************')
    ygc.tong(xmcx) 
    ygc.chiyao() 
    print('*********************')
    print(xmcx)
    print(ygc)
*********************
【西门吹雪】捅了【叶孤城】一刀
【西门吹雪】砍了【叶孤城】一刀
*********************
【叶孤城】捅了【西门吹雪】一刀
【叶孤城】吃了一口药,增加10滴血
*********************
西门吹雪还剩下50的血量
叶孤城还剩下25的血量
*********************
【西门吹雪】捅了【叶孤城】一刀
【西门吹雪】砍了【叶孤城】一刀
*********************
【叶孤城】捅了【西门吹雪】一刀
【叶孤城】吃了一口药,增加10滴血
*********************
西门吹雪还剩下40的血量
叶孤城还剩下10的血量
*********************
【西门吹雪】捅了【叶孤城】一刀
【西门吹雪】砍了【叶孤城】一刀
*********************
【叶孤城】捅了【西门吹雪】一刀
【叶孤城】吃了一口药,增加10滴血
*********************
西门吹雪还剩下30的血量
叶孤城还剩下-5的血量


27 实例练习1 水果类



class Fruit:
    def __init__(self,name,color):
        self.name = name
        self.color = color
    def showColor(self):
        print('%s的颜色为%s'%(self.name,self.color))
apple = Fruit('苹果','红色').showColor()
orange = Fruit('橘子','黄色').showColor()
watermelen = Fruit('西瓜','绿色').showColor()


28 验证self 就是实例本身



class CkeckSelf:
    def __str__(self):
        print(id(self)) 
        pass
CkeckSelf().__str__()
selfObj = CkeckSelf()
print(id(selfObj))


29 定义animal类,输出所有的属性



class Animal:
    def __init__(self, color, name, age):
        self.color = color
        self.name = name
        self.age = age
    def run(self):
        print('%s在跑步'%(self.name))
        pass
    def eat(self):
        print('%s在吃东西' %(self.name))
        pass
    def __str__(self):
        return '%s岁的%s的%s'%(self.age,self.color,self.name)
cat = Animal('黑色','小猫',2)
dog = Animal('白色','小狗',3)
cat.run()
dog.run()
print(cat)
print(dog)
# 小猫在跑步
# 小狗在跑步
# 2岁的黑色的小猫
# 3岁的白色的小狗
相关文章
|
16小时前
|
算法 Python
Python新式类和经典类
Python新式类和经典类
|
1天前
|
自然语言处理 Java API
Python之:Python中的类
Python之:Python中的类
|
2天前
|
安全 测试技术 Python
Python类中的Setter与Getter:跨文件调用的艺术
Python类中的Setter与Getter:跨文件调用的艺术
10 3
|
3天前
|
SQL 分布式计算 大数据
MaxCompute产品使用问题之建了一个python 的 UDF脚本,生成函数引用总是说类不存在,是什么导致的
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
12天前
|
Python
python 中*类型对象
【6月更文挑战第9天】
19 2
|
19天前
|
Python
Python的类型对象
【6月更文挑战第5天】
14 3
|
数据采集 Python
Python类型和对象
关键字:Python 类型 对象原文:http://wiki.woodpecker.org.cn/moin/PyTypesAndObjects 关于本书 解释新式的Python对象(new-style): and 是什么东西 用户定义的类及实例是如何相互关联的,和内置类型有啥关系how user defined classes and instances are related to each other and to built-in types metaclass是什么 新式类型New-style包含在Python2.2及以上,包括3.x。
1245 0
|
13小时前
|
Python
揭秘Python安装目录:你的编程宝库隐藏了哪些宝藏?
揭秘Python安装目录:你的编程宝库隐藏了哪些宝藏?
|
16小时前
|
数据挖掘 数据处理 Python
Python编程入门:从基础到实践
【6月更文挑战第26天】这篇文章引导读者逐步学习Python编程,从基础语法如变量、数据类型(整数、浮点数、字符串)到条件语句、循环(if/for/while),再到函数定义和模块导入。通过实例展示了Python在文本处理、数据分析(使用pandas)和Web开发(使用Flask)的应用。学习Python能为初学者开启更广阔的技术领域,如面向对象编程、并发和网络编程等。