IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python学习 类和对象 -> 正文阅读

[Python知识库]python学习 类和对象


本内容均来源于b站黑马程序员,仅学习记录使用

1 最基本的创建类

class Cat: #python中类首字母 大写

    #属性 通常是变量
    color = 'green'
    weight = 10

    #方法 通常是函数
    def climb(self):
        print("爬")

cat = Cat() #实例化对象 变量名 = 类名
cat.climb() 

2 _ init _ 初始化

在__init__方法内部使用self.属性名=属性初始值 -> 来定义属性,之后实例化的对象就会拥有该属性

class Cat:
	def __init__(self,name):  #init 用来定义类 具体有哪些属性 初始化,python会自动执行
		self.name=name #self.name 中的name是属性, self.属性 = 形参
	def eat(self):
		print("%s 爱吃鱼" % self.name)
tom = Cat('Tom') #实例化后并没有调用init方法,但是输出还是执行了其下的程序->实例化时会自动调用初始化方法
tom.eat()

3 练习

3.1 小明跑步练习

class Person:

    def __init__(self,name,weight):
        self.name=name
        self.weight=weight

    def run(self):
        self.weight -=0.5
        print("我叫 %s, 体重是 %.2f 公斤" %(self.name,self.weight))

    def eat(self):
        self.weight +=1
        print("我叫 %s, 体重是 %.2f 公斤" %(self.name, self.weight))

person = Person("小明",75.0)
person.run()
person.eat()

3.2 家具添加练习

class Houseitem: #定义家具类
    def __init__(self,name,area):
        self.name = name #家具名称
        self.area = area #家具面积

    def __str__(self): #内置方法,描述retune内容,python会自动调用,必须有retun
        return "%s 占地 %.2f 面积" %(self.name,self.area)

class House: #定义房子类
    def __init__(self,type,area):
        self.type = type #房子户型
        self.area = area #房子总面积
        
        #只有需要外部传输的属性才需要定义形参
        self.free_area = area #初始剩余面积等于总面积
        self.list = [] #家具列表

    def __str__(self):
        return ("户型:%s \n总面积:%.2f[剩余面积:%.2f] \n家具内容:%s"    #语句比较长的话,两头加( ),中间回车,python会自动处理
                %(self.type,self.area,
                  self.free_area,self.list))

    def add(self,name): #添加家具并计算剩余面积
        if name.area > self.free_area:
            print("%s 面积太大,无法添加")
            return #如果家具面积过大,后面的程序不需要执行,直接return

        #添加家具名称
        self.list.append(name.name)

        #计算剩余面积
        self.free_area -=name.area

#实例化
bed = Houseitem("席梦思",4)
chest = Houseitem("衣柜",2)
table = Houseitem("桌子",1.5)
my_house = House("两室一厅",100)

#添加家具并计算剩余面积
my_house.add(bed)
my_house.add(chest)
my_house.add(table)

print(my_house)

以下为输出内容
在这里插入图片描述

3.3 士兵突击

(一个对象的属性可以是另一个类实例化的对象)

class Gun: #定义枪类
    def __init__(self,gun_name):
        self.gun_name = gun_name #属性 枪的名称
        self.bullet = 0 #属性 枪子弹数

    def add_bullet(self,number): #填充子弹
        self.bullet +=number

    def fire(self): #发射子弹
        if self.bullet <= 0:
            print("%s 没有子弹了,请填充" %self.gun_name)

        self.bullet -=1 #发射一发子弹
        print("%s 发射,剩余 %d 发子弹" % (self.gun_name,self.bullet))
        
class Soldier: #定义士兵类
    def __init__(self,name):  #初始化属性
        self.name = name
        self.gun = None  #假设开始没有枪,定义属性时,如果不知道初始值,可以设置为None

    def fire(self): #士兵开枪
        if self.gun == None:
            print("还没有枪")
            return

        #有枪,要给枪装子弹
        self.gun.add_bullet(30)
        print("%s 已经给 %s 填充 %d 发子弹 " % (self.name,self.gun.gun_name,self.gun.bullet))
        self.gun.fire()

soldier = Soldier("许三多")
soldier.gun = Gun("AK-47") #一个类创建的对象 是 另一个类 的 属性
soldier.fire()

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 23:01:27  更:2021-07-14 23:03:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:48:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码