Python系统学习1-9-类(一)

这篇具有很好参考价值的文章主要介绍了Python系统学习1-9-类(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、类之初印象

1、类就是空表格,将变量(列名)和函数(行为)结合起来
2、创建对象,表达具体行
3、创建类就是创建数据的模板

        --操作数据时有提示

        --还能再组合数据的行为

        --结构更加清晰

4、类的内存分配

Python系统学习1-9-类(一),python基础学习,python,学习,开发语言

 5、练习
"""
    参照day08/homework/exercise01
    创建餐厅类
        -- 变量:字典的键
        -- 函数:打印
"""
# 类统一了字典所有key,并提供了相关函数
class Restaurant:
    def __init__(self, city, name="", remark=0, money=0):
        self.city = city
        self.name = name
        self.remark = remark
        self.money = money

    def display(self):
        print("%s在%s地区,点评人数%s,人均消费%s元." % (
            self.name, self.city, self.remark, self.money))

# 创建对象
# --(1)根据实例变量开辟空间
# --(2)执行__init__函数
xqwct = Restaurant("北京", "星期五餐厅", 2847, 180)
tmz = Restaurant("北京","铁木真",3497,104)
print(xqwct.remark)
# 通过对象调用函数,自动将对象作为参数传递给self
xqwct.display() # display(xqwct)
tmz.display()

Python系统学习1-9-类(一),python基础学习,python,学习,开发语言

 二、类语法

(1)类定义
1、代码
class 类名:
    """
    文档说明
    """
    def __init__(self,参数):
     self.实例变量 = 参数
    def 实例方法(self,参数):
        pass
2、说明
        -- 类名所有单词首字母大写
        -- init 也叫构造函数,创建对象时被自动调用,也可以省略。
        -- self 变量绑定的是被创建的对象,名称可以随意 self就是对象
3、实例化
      代码:对象名 = 类名 ( 数据 )
说明:
        -- 对象名存储的是实例化后的对象地址
        -- 类名后面的参数按照构造函数的形参传递(__init__函数)
(2)实例成员
1、实例变量
定义:对象 . 变量名(self.变量名)
调用:对象 . 变量名
说明 通常在构造函数 (__init_) 中创建,首次通过对象赋值为创建,再次赋值为修改.
            每个对象存储一份,通过对象地址访问
__dict__ :对象的属性,用于存储自身实例变量的字典。
2、实例方法

         def 方法名(self,参数):

                方法体(通过“self.变量名"访问实例变量)

调用:对象名.方法名(变量)

说明:至少有一个形参,第一个参数绑定调用这个方法的对象 , 一般命名为self
           无论创建多少对象,方法只有一份,并且被所有对象共享。
# 类中self就是对象名
# 类外自己命名的为对象名
class Epidemic:
    def __init__(self, region):
        # 创建实例变量
        self.region = region
        self.display()
    # 定义实例方法
    def display(self):
        print(self.region)

bj = Epidemic("北京")
bj.display()

# 读取实例变量
print(bj.region)
# python语言将实例变量存入字典
print(bj.__dict__)  # {'region': '北京'}

# Python支持在类外创建实例变量,不建议使用
"""
class Epidemic:
    pass
sh = Epidemic()
sh.region = "上海" # 当前对象有此实例,其他对象无
print(sh.region)
dd = Epidemic()
# print(dd.region) 错误
"""

# 建议在__init__ 中定义实例变量
"""
class Epidemic:
    def set_name(a, name):  # self 可以为任意命名为其他
        # 创建实例变量
        a.name = name
bj = Epidemic()
bj.set_name("北京")
print(bj.name)
print(bj)  # 打印自定义对象,输出为真实内存地址
"""
3、类实例化内存分配

Python系统学习1-9-类(一),python基础学习,python,学习,开发语言

 Python系统学习1-9-类(一),python基础学习,python,学习,开发语言

 Python系统学习1-9-类(一),python基础学习,python,学习,开发语言

 (3)跨类调用
 跨类调用语法1:直接创建对象

        语义:XX每次去东北都开一辆新车,因为Car()为局部变量

        通俗:每次用新的

class Person:
    def __init__(self, name):
        self.name = name

    def driver(self):
        print(self.name,"驾驶去东北")
        car = Car()
        car.run()
        
class Car:
    def run(self):
        print("骑车在行驶")


lz = Person("老张")
ll = Person("老李")
lw = Person("老王")

lz.driver()  # 老张驾驶新车去东北
ll.driver()  # 老李驾驶新车去东北
lw.driver()  # 老王驾驶新车去东北
lz.driver()  # 老张驾驶新车去东北
 跨类调用语法2:在构造函数中创建对象

        语义:XX每次去东北都开自己的车,__init__只执行一次

        通俗:每次用旧的

class Person:
    def __init__(self, name):
        self.name = name
        self.car = Car() # 每个对象一个
    def driver(self):
        print(self.name,"驾驶去东北")
        # car = Car() # 多次就是多个
        self.car.run()

class Car:
    def run(self):
        print("骑车在行驶")


lz = Person("老张")  # __init__ 造车,只有一次
lz.driver()
lz.driver()
 跨类调用语法3:通过参数传递对象,建议使用

        语义:XX每次去东北都乘交通工具

        通俗:每次用的时候再选择文章来源地址https://www.toymoban.com/news/detail-651879.html

class Person:
    def __init__(self, name):
        self.name = name


    def driver(self,vehicle):
        print(self.name,"驾驶去东北")
        vehicle.run()

class Car:
    def run(self):
        print("骑车在行驶")


lz = Person("老张")  # __init__ 造车,只有一次
car = Car()
# 没有定义类时,确定关系
# 而是在用类时,确定关系
lz.driver(car)

到了这里,关于Python系统学习1-9-类(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 入门人工智能 —— 学习一门编程语言 python 基础代码编写和运算符介绍(1)

    随着人工智能技术的快速发展,越来越多的年轻人开始关注这个领域。作为入门者,学习人工智能编程语言至关重要。这里将介绍人工智能编程语言Python的基础知识,帮助初学者更好地理解人工智能领域的基本概念和技术。 下面是一些入门 Python 编程语言的基本知识: 安装

    2024年02月09日
    浏览(50)
  • 系统学习Python——装饰器:函数装饰器-[添加装饰器参数:基础知识]

    分类目录:《系统学习Python》总目录 前面文章介绍的计时器装饰器有效运行,但是如果它可配置性更强的话,就会更好一一一例如提供一个输出标签并且可以打开或关闭跟踪消息,这些在一个多用途工具中可能很有用。装饰器参数在这里派上了用场:对它们适当编写后,我们

    2024年02月22日
    浏览(34)
  • Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能

    安装 Python 环境,选择一个 IDE,如 PyCharm、VSCode等。 安装 Python 环境是使用 Python 进行编程的第一步。Python 官网提供了 Windows、Linux 和 macOS 等主流操作系统的安装包,可以前往官网下载对应版本的 Python 并进行安装。 在安装完 Python 后,需要使用 pip 工具对常用的第三方库进行

    2024年02月09日
    浏览(56)
  • 基于旭日派的Ros系统小车的再开发——使用python脚本调用MIPI相机(学习笔记)

        这里我们导入了 cv2 、 time 、 ipywidgets 和 Mipi_Camera 这几个库。其中, cv2 是用于图像处理和计算机视觉的库; time 是用于计时和休眠的库; ipywidgets 是用于创建交互式窗口小部件的库; Mipi_Camera 则是用于控制和采集MIPI接口相机图像的库。当然除此之外,我们在代码中还添

    2024年01月21日
    浏览(41)
  • 【功能超全】基于OpenCV车牌识别停车场管理系统软件开发【含python源码+PyqtUI界面+功能详解】-车牌识别python 深度学习实战项目

    摘要: 车牌识别系统(Vehicle License Plate Recognition,VLPR) 是指能够检测到受监控路面的车辆并自动提取车辆牌照信息(含汉字字符、英文字母、阿拉伯数字及号牌颜色)进行处理的技术。车牌识别是现代智能交通系统中的重要组成部分之一,应用十分广泛。本文详细介绍了 车牌

    2024年02月09日
    浏览(59)
  • 【Python】Python语言基础(中)

    ❤️ 博客主页 : iknow181 🔥 系列专栏 : Python、JavaSE、JavaWeb、CCNP 🎉 欢迎大家点赞👍收藏⭐评论✍ 目录 第十章 Python的数据类型 基本数据类型 数字 整数 浮点数 浮点数的精度问题 布尔型 进制转换 十进制转其它进制 其他进制转十进制 其它进制转其它进制 数字的随机 ra

    2024年02月08日
    浏览(47)
  • Python 实验二 Python语言基础

    1.运用输入输出函数编写程序,将华氏温度转换成摄氏温度。换算公式:C=(F-32)*5/9,其中 C为摄氏温度,F为华氏温度。 2.编写程序,根据输入的长和宽,计算矩形的面积并输出。 3.编写程序,输入三个学生的成绩计算平均分并输出。 4.根据以下叙述写出正确的条件表达式: 有语

    2023年04月18日
    浏览(49)
  • 从零开始,以 Python 框架 Flask 为基础开发一个开源的对话系统 Building a RealTime Chatbot Using Flask and TensorFlow

    作者:禅与计算机程序设计艺术 在今年的爆炸性增长中,基于聊天机器人的应用已经越来越广泛。这其中包括电子商务、虚拟助手、智能客服等。许多优秀的平台都提供现成的聊天机器人服务,如微软小冰、图灵机器人、Facebook 的聊天机器人、Amazon Alexa 等。但是如果需要自

    2024年02月06日
    浏览(62)
  • 【Python】Python语言 3小时速通(有C语言基础版)

    并不需要指出变量类型 存储数据时经常使用lower,因为无法确保数据是大写还是小写 从这里可以看出python对于数据和字符处理具有很多优势 直接通过加号的形式拼接 他们都相当于字符(串) 不强转会报错 用#而不是// 增加元素 类似于数组,访问方式同数组 按位置删除 按值

    2024年01月21日
    浏览(38)
  • Go语言 -- Web开发基础学习 net/http包

    Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go语言最擅长的领域就是Web开发,此贴是本人入门完go语法基础后学习Web开发的学习笔记。 新建go文件hello_world.go 写入: 在命令行运行: go run ./hello_world.go 可以发现控制台输出以下信息 通过上述代码

    2024年02月06日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包