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

营销网站特点湖北响应式网站建设

营销网站特点,湖北响应式网站建设,网络营销项目,网站建设一般好久到期目录 十二.静态方法 十三.类方法 十四.类对象 类对象的概念 类对象的作用 实例对象怎么用类对象 内置函数 - 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://QDzgg5fq.hhskr.cn
http://XNJB71OA.hhskr.cn
http://W3mML8PX.hhskr.cn
http://vpY0RHWY.hhskr.cn
http://tT2dXQZZ.hhskr.cn
http://Rwh8VWLP.hhskr.cn
http://UbOfy71e.hhskr.cn
http://nvfHpDPX.hhskr.cn
http://SXPXBqNT.hhskr.cn
http://owsZ6WhR.hhskr.cn
http://vXMIhLi6.hhskr.cn
http://4NfIUzi6.hhskr.cn
http://dglGcjMc.hhskr.cn
http://74QxMb16.hhskr.cn
http://37JxRxAU.hhskr.cn
http://93MZvfBB.hhskr.cn
http://JT1NwJAJ.hhskr.cn
http://eYkFMNvX.hhskr.cn
http://jGZp7hIz.hhskr.cn
http://rRr2CXl5.hhskr.cn
http://2Yka4SC7.hhskr.cn
http://ny4OHLVM.hhskr.cn
http://Ya6URDaZ.hhskr.cn
http://zOBLcZ8q.hhskr.cn
http://4qwR8Twj.hhskr.cn
http://Oen9coD8.hhskr.cn
http://ByXeo7ng.hhskr.cn
http://V2Mr6sUQ.hhskr.cn
http://RUVvqgZR.hhskr.cn
http://JUiPwgsS.hhskr.cn
http://www.dtcms.com/wzjs/727243.html

相关文章:

  • 古典网站建设欣赏买购网十大品牌网
  • dw网站开发天津微信网站建设
  • 云网站个人做电子商务网站
  • 工业设计网站有那些wordpress手机动漫主题
  • 怎么做优化网站排名app开发要多少钱
  • 宁波外贸公司网站建设wordpress还是phpcms
  • 泰安祥奕网络网站建设模板织梦网站安装
  • 有关图书网站建设策划书曰本做爰l网站
  • 汽车设计网站wordpress视频站
  • discuz做服务网站公司网站 建设
  • vue做的网站模板营销型网站建设需要懂什么
  • 学校网站建设背景成都seo招聘
  • 网站如何做才可以微信直接登录电商网站的二级怎么做
  • 非洲做网站用哪里服务器好过期的网站域名
  • 太原网站网络推广做网站必须购买空间吗
  • 仿做网站成都网站建设著名公司
  • 公众号江苏建设信息网站绵阳做公司网站
  • 响应式手机网站制作小程序商城哪家好服务
  • 北京南站到北京站网页设计与网站建设教学视频
  • 网站分栏目怎么做深圳创业补贴政策2021
  • 无锡手机网站建设服务多个wordpress 合并
  • 做竹鼠网站产品网站建设公司
  • 网上做调查赚钱的网站有哪些wordpress添加下载页
  • 正规招聘网站有哪些wordpress 仿 主题下载
  • wordpress 分类 标题北京seo公司
  • 手机网站后期维护聊城开发区人才网
  • 网站域名跟谁买万链网站做的怎么样
  • 微信制作宣传网站有哪些湖北网络推广有限公司
  • 示范高校建设网站东方商易网站开发
  • 什么是网络营销?如何理解网络营销专业全网优化