python-day6(补充三:实例变量和函数)

news/2025/4/21 10:24:43/

实例变量和函数

  1. 实例函数的定义
  2. 认识__init__函数
  3. 定义实例变量
  4. 实例函数中访问实例变量
  5. 外部访问实例变量与函数

实例函数的定义

定义实例函数

class Student:def say_hello(self, msg):print(f"hello{msg}")

实例函数属于对象

class Student:def say_hello(self, msg: str):print(f"Hello {msg}")def main():s1 = Student()s1.say_hello("hahaha")if __name__ == '__main__':main()

输出

Hello hahaha

这里定义了一个say_hello(self, msg: str)的实例函数,self是必须带的,只要是类的实例函数必须带这个参数,函数体中写的东西可以理解为具体的属性;必须有对象才能用。(执行哪个对象的实例函数)
这里语句可以理解为:

  1. 我先用Student()这个类创建了一个对象s1
  2. 在s1中有一个叫say_hello()的属性
  3. 调用s1的say_hello属性

认识__init__函数

__init__函数是用于初始化对象的实例函数

class Student:def __init__(self):print("doing initial stuff")s1 = Student()

实例:

class Student:def __init__(self, name: str):     # 初始化,这里添加了一个name的属性self.name = name        # 给这个对象定义一个属性,将参数中传过来的name赋值给这个属性def say_hello(self, msg: str):print(f"Hello {msg}, {self.name}")def main():# 1. create a physical object# 2. call __init__() to initialize this objects1 = Student("Jack")s2 = Student("Tom")s1.say_hello("111")s2.say_hello("222")if __name__ == '__main__':main()

python中可以动态添加对象的属性

s1.gender = 'male'	# 直接添加在后面
print(s1.gender)

实例函数中访问实例变量

在实例函数中通过self访问实例变量

class Student:def __init__(self, name:str):self.name = namedef introduce():print(f"I'm {self.name}")s1 = Student("Jack")
s1.name = "Tom"
s1.introduce()

代码

class Student:def __init__(self, name: str):     # 初始化self.name = name        # 给这个对象定义一个属性,将参数中传过来的name赋值给这个属性def say_hello(self, msg: str):print(f"Hello {msg}, {self.name}")def main():# 1. create a physical object# 2. call __init__() to initialize this objects1 = Student("Jack")s2 = Student("Tom")s1.say_hello("111")s2.say_hello("222")s1.gender = 'male'print(s1.gender)if __name__ == '__main__':main()

其实就是把细节包装起来,然后用一个固定的模式将函数中实现的功能给调用出来。

资料来源:【面向对象的Python编程-03.实例变量与函数】 https://www.bilibili.com/video/BV1GD4y187Nj/?share_source=copy_web&vd_source=0235d88ba3487903dc658fe856ba0135
UP:跟峰哥学编程


http://www.ppmy.cn/news/47653.html

相关文章

JMM之volatile关键字详解

1、概要 在JMM规范下有三大特性分别是:可见性、原子性、有序性。而被volatile关键字修饰的共享变量拥有三大特性的两大特性分别是:可见性和有序性。 为什么被volatile修饰的变量就可以保证变量的可见性和有序性呢?为啥不能保证原子性&#…

使用 PyTorch Geometric 和 GCTConv实现异构图、二部图上的节点分类或者链路预测

解决问题描述 使用 PyTorch Geometric 和 Heterogeneous Graph Transformer 实现异构图上的节点分类 在二部图上应用GTN算法(使用torch_geometric的库HGTConv); 步骤解释 导入所需的 PyTorch 和 PyTorch Geometric 库。 定义 x1 和 x2 两种不同类型节点的特征&am…

如何在 TensorFlow 中使用 GPU 加速深度学习计算?

一、前言 TensorFlow 是由 Google 开源的深度学习框架,它具有易用、高效、灵活等特点,被广泛应用于学术界和工业界中。而 GPU 是一种高性能的计算设备,可以加速深度学习的计算过程。本文将介绍如何在 TensorFlow 中使用 GPU 加速深度学习计算。 二、安装 TensorFlow 安装…

Python语言中的注释方法应用

Python语言中的注释方法 在Python编程中,与其他编程语言一样,有良好的注释部分,会让你的程序在后续的改进或优化中,变得便利。同时,给自己培养了良好的编程习惯。 在Python语言中,有两种注释方法。 1.单行…

DAY 43 Apache的配置与应用

虚拟Web主机 概述 虚拟web主机指的是在同一台服务器中运行多个web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为"虚拟"web主机。通过虚拟web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本…

API 接口主流协议有哪些? 如何创建不同协议?

API 接口协议繁多,不同的协议有着不同的使用场景。70% 互联网应用开发者日常仅会接触到最通用的 HTTP 协议,相信大家希望了解更多其他协议的信息。我们今天会给大家介绍各种 API 接口主流协议和他们之间的关系。 1、API 接口主流协议有哪些? 接口协议分…

理解websocket连接的原理

背景 Websocket是一个持久化的协议,相对于HTTP这种非持久的无状态协议来说 一、问题 http long poll,或者ajax轮询都可以实现实时信息传递,为什么还需要websocket? 二、理解 ajax轮询:浏览器隔个几秒就发送一次请求&am…

json for modern c++

目录 json for modern c概述编译问题问题描述问题解决 读取JSON文件demo json for modern c GitHub - nlohmann/json: JSON for Modern C 概述 json for modern c是一个德国大牛nlohmann写的,该版本的json有以下特点: 1.直观的语法。 2.整个代码由一个…