python中类的静态方法和类的类方法

简介: python中类的静态方法和类的类方法

知识回顾:



上一节中,我们深化学习了类的属性监控,主要使用了三个魔法方法:

  • __getattr__
  • __setattr__
  • __delattr__

与此同时在书写属性设置监控的时候,千万不要忘记写__dict__方法属性。


一、类的属性监控的作业



案例:使得类的某个属性值大于10

思路:

1.设置一个类

2.定义一个__setattr__方法,用来监控属性

3.类的实例化,设置类的属性

4.通过查看类的属性的值,来看属性监控是否成功


二、类的静态方法



在类中的方法名称前加一个头标记@staticmethod。


静态方法往往用于一些自定义的类来实现一些通用的功能,可以方便我们调用类的方法。


类的静态方法,不需要self这类参数,因为类的静态方法,不需要进行实例化,就可以进行调用。


三、类的类方法



在类中的方法名称前加一个头标记@classmethod。


类的类方法的调用也不需要进行实例化。


类的类方法是在python中对类的构造方法的一个补充。


四、静态方法的定义和调用方式



定义:

@staticmethod

def 类的方法名称:

方法主体


举例

@staticmethod

   def say():

       print("我们是静态方法,我不需要实例化,就可以被调用")


调用:

类的名称.方法名称()

Person.say()



类方法类似于静态方法

定义:

@classmethod

   def setName(cls):

       name="test类方法"

       print(name)


调用:

Person.setName()



类的静态方法和类方法的区别主要是在方法定义的时候的头标记不同。但在定义类方法的时候需要一个类的本身的参数。


五、总结强调



1.掌握类的静态方法

2.掌握类的类方法

3.理解静态方法与类方法的区别

4.掌握属性监控的魔法方法书写的方式,不能漏掉类内部存储的__dict__字典存储。


源代码【作业代码】:

class Person:
    def __init__(self):
        self.age=0
    def __setattr__(self, key, value):
        if(key=="nianling"):
            if(value>10):
                self.age=value
            else:
                print("年龄不符合条件")
        else:
            self.__dict__[key]=value
    def __getattr__(self, item):
        if(item=="nianling"):
            return self.age
p=Person()
# print(p)
p.nianling=6
print(p.nianling)

本节知识源代码:

#类的静态方法
class Person:
    name=""
    def __init__(self):
        self.age=""
    @staticmethod
    def say():
        print("我们是静态方法,我不需要实例化,就可以被调用")
    @staticmethod
    def sayHello(n):
        name=n
        print(name+"您好")
    @classmethod
    def setName(cls):
        name="test类方法"
        print(name)
Person.say()
Person.setName()
Person.sayHello("老刘")
相关文章
|
2月前
|
测试技术 API Python
【10月更文挑战第1天】python知识点100篇系列(13)-几种方法让你的电脑一直在工作
【10月更文挑战第1天】 本文介绍了如何通过Python自动操作鼠标或键盘使电脑保持活跃状态,避免自动息屏。提供了三种方法:1) 使用PyAutoGUI,通过安装pip工具并执行`pip install pyautogui`安装,利用`moveRel()`方法定时移动鼠标;2) 使用Pymouse,通过`pip install pyuserinput`安装,采用`move()`方法移动鼠标绝对位置;3) 使用PyKeyboard,同样需安装pyuserinput,模拟键盘操作。文中推荐使用PyAutoGUI,因其功能丰富且文档详尽。
WK
|
28天前
|
Python
Python中format_map()方法
在Python中,`format_map()`方法用于使用字典格式化字符串。它接受一个字典作为参数,用字典中的键值对替换字符串中的占位符。此方法适用于从字典动态获取值的场景,尤其在处理大量替换值时更为清晰和方便。
WK
70 36
|
2月前
|
机器学习/深度学习 数据采集 数据挖掘
11种经典时间序列预测方法:理论、Python实现与应用
本文将总结11种经典的时间序列预测方法,并提供它们在Python中的实现示例。
68 2
11种经典时间序列预测方法:理论、Python实现与应用
|
2月前
|
开发者 Python
Python中的魔法方法与运算符重载
在Python的奇妙世界里,魔法方法(Magic Methods)和运算符重载(Operator Overloading)是两个强大的特性,它们允许开发者以更自然、更直观的方式操作对象。本文将深入探讨这些概念,并通过实例展示如何利用它们来增强代码的可读性和表达力。
|
2月前
|
索引 Python
python-类属性操作
【10月更文挑战第11天】 python类属性操作列举
22 1
|
2月前
|
Java C++ Python
Python基础---类
【10月更文挑战第10天】Python类的定义
25 2
|
2月前
|
Linux Python
Python获得本机本地ip地址的方法
【10月更文挑战第8天】 socket模块包含了丰富的函数和方法,可以获取主机的ip地址,例如gethostbyname方法可以根据主机名获取ip地址,gethostbyname_ex方法可以获得本机所有ip地址列表,也可以使用netifaces模块获取网卡信息。
42 0
WK
|
2月前
|
Python
Python类命名
在Python编程中,类命名至关重要,影响代码的可读性和维护性。建议使用大写驼峰命名法(如Employee),确保名称简洁且具描述性,避免使用内置类型名及单字母或数字开头,遵循PEP 8风格指南,保持项目内命名风格一致。
WK
14 0
|
2月前
|
SQL 安全 数据库
Python防止SQL注入攻击的方法
Python防止SQL注入攻击的方法
67 0
|
6天前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!
下一篇
无影云桌面