当前位置: 首页 > wzjs >正文

烟台网站seo服务商派商城网站建设二次开发

烟台网站seo服务,商派商城网站建设二次开发,一个外国设计网站网址,附近企业建站公司目录 十二.静态方法 十三.类方法 十四.类对象 类对象的概念 类对象的作用 实例对象怎么用类对象 内置函数 - dir 十二.静态方法 概述 默认情况下,类中定义的方法是实例方法,即这个方法有一个默认的形参self,这个self会在方法被调用的…

目录

十二.静态方法

十三.类方法

十四.类对象

类对象的概念

类对象的作用

实例对象怎么用类对象

内置函数 - dir


十二.静态方法

概述

默认情况下,类中定义的方法是实例方法,即这个方法有一个默认的形参self,这个self会在方法被调用的时候指向对象。但是有些时候,我们并不需要对象的引用,即self没用,那该怎么处理呢?能不写self吗?

答:可以

静态方法的概念

如果一个方法不写self即不需要实例对象的引用,此时在定义方法的时候可以用@staticmethod对函数进行修饰,被修饰的函数就可以不写self

一句话:被@staticmethod修饰的方法,就是静态方法

class 类名:@staticmethoddef 静态方法名():pass

代码示例

class Calculator:"""计算器类"""def __init__(self):# 定义2个默认值self.num1 = 0self.num2 = 0@staticmethoddef show_menu():"""因为打印菜单功能方法并不需要self指向的对象,所以就考虑使用静态方法"""print("计算机 V2025.07")print("1. 加法")print("2. 减法")print("3. 乘法")print("4. 除法")print("5. 退出")def get_nums(self):self.num1 = int(input("请输入第1个数:"))self.num2 = int(input("请输入第2个数:"))def add(self):print(self.num1 + self.num2)def min(self):print(self.num1 - self.num2)def mul(self):print(self.num1 * self.num2)def div(self):print(self.num1 / self.num2)def run(self):while True:self.show_menu()op = input("请输入要进行的操作:")if op == "1":self.get_nums()self.add()elif op == "2":self.get_nums()self.min()elif op == "3":self.get_nums()self.mul()elif op == "4":self.get_nums()self.div()elif op == "5":break# 创建一个计算器对象
cal = Calculator()
# 调用计算器的运行方法
cal.run()运行效果:
计算机 V2025.07
1. 加法
2. 减法
3. 乘法
4. 除法
5. 退出
请输入要进行的操作:

简单总结

如果不需要用到对象,那么就可以将方法用@staticmethod进行修饰,如此一来此方法就变成了静态方法

十三.类方法

概述

为了更好的对类属性进行操作,Python提供了另外一种方法类方法。

类方法的概念

之前在学习静态方法的时候我们知道可以在方法的名字前面添加@staticmethod此时这个方法就是静态方法

与创建静态方法类似,如果想要让一个方法成为类方法我们只需要在这个方法的前面添加 @classmethod即可,与此同时需要在方法的第一个形参位置添加cls

class 类名:@classmethoddef 类方法名(cls):pass

示例代码

class Tool:tools_num = 0  # 定义一个类属性,用来存储共享的数据def __init__(self, name):self.name = nameTool.tools_num += 1def print_info_1(self):print("工具的总数为:", Tool.tools_num)@classmethoddef print_info_2(cls):print("工具的总数为:", cls.tools_num)tieqiao = Tool("铁锹")
chutou = Tool("锄头")
dianciluo = Tool("电磁炉")tieqiao.print_info_1()
Tool.print_info_2()
tieqiao.print_info_2()运行效果:
工具的总数为: 3
工具的总数为: 3
工具的总数为: 3

简单总结

  • 定义类方法时,前面添加@classmethod
  • 类方法的第一个形参,一般都叫做cls(当然了叫什么名字可以任意,但一般都用cls)
  • 调用类方法的时候,可以用实例对象、类对象调用,但无论用哪种方式调用,类方法中的cls指向类对象
十四.类对象

概述

之前在学习类属性的时候,我们提到过:类属性是可以在多个实例对象之间共享的属性。那么问题来了,类属性到底存在哪里呢?

答:类对象

类对象的概念

之前我们说到通过class定义的就是类(就是一个要创建的商品的模板),通过类名()创建出来的叫做实例对象。其实,定义的类(即用class定义的类)实际上也是一个对象。(试想即使我们把类称之为模板,模板不是空的,也是需要占用内存的)

定义的类其实就是一个对象,为了能够将这个对象与其创建出来的实例对象进行区分,将这个class定义的类叫做类对象

类对象的作用

我们知道实例对象是类 (即类对象)创建出来的,所以类对象对于实例对象而言是共享的,既然是共享的那么就干脆将实例对象都有的而且不变化的内容存储到类对象即可,这样会减少内容的占用。那哪些东西会存储在类对象中呢?

  1. 类属性
  2. 所有的方法

对你没有看错,除了熟知的类属性之外,类对象中存储了class定义的所有的方法(无论是魔法方法、实例方法、静态方法 、类方法都在类对象中存储),因为方法(函数)的代码是不变的,变化的仅仅是数据而已。

实例对象怎么用类对象

每个实例对象中都会有一个额外默认的属性__class__,这个属性指向了创建当前对象的模板即类对象,所以当调用实例对象.xxx()时,实际上实例对象.__class__.xxx()

内置函数 - dir

既然我们知道了实例对象中有默认的__class__,那除了它之外还有哪些呢?怎么查看呢?

dir(实例对象)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__','__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', 
'__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', 
'__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 
'__weakref__']

这么多以__开始的属性或方法不用现在就研究它们的含义和使用方式,在后期的学习中用到什么我们就研究什么。

http://www.dtcms.com/wzjs/567773.html

相关文章:

  • 昆明网站同城推广平台
  • 广东事业单位网站网站建设的意义是什么
  • 西宁企业做网站四川企业网站开发
  • 东莞网站优化快速排名h5编辑工具
  • 电子购物网站设计软件服务外包
  • 做qq图片的网站吗遵义网站开发的公司
  • 山东省建设厅网站特种作业logo设计 效果图
  • 工信部 加强网站备案手机网站域名解析
  • 专门做动漫的网站做的很好的网站
  • 网站架构原理友情链接只有链接
  • 想做国外的客户做网站怎么弄360免费wifi可以破解wifi密码吗
  • 上海网站设计的公司我们是设计师 网站建设专家
  • 大大福利站网站建设芜湖又出现一例
  • 做自媒体的网站8469网站
  • 大港油田建设官方网站商标做网站logo
  • ui培训师需要优化的网站有哪些
  • 做影集的网站或软件下载做兼职写小说网站
  • 响应式网站怎么做无缝轮播图lnmp.org wordpress
  • 创建空白网站零食加盟店10大品牌前三名
  • 微信网站全称怎样给自己网站做反链
  • 15年做哪个网站能致富产品设计的定义
  • 在线一键建站系统网站利用百度离线地图
  • 网站的付款链接怎么做的新开传奇网站推荐
  • 网站建设对于企业发展的优势寺庙网站建设
  • 图标设计网站微信网站建设企业
  • 阿里云做视频网站可以吗泰州网站制作计划
  • 海口网站推广公司上海seo优化
  • html5网站欣赏 国内芷江建设局网站
  • 公司网站建设的费用会计处理专做律所网站
  • 怎么做二维码网站郑州网络推广平台有哪些