所谓静态方法,就是:定义在类中,并且使用 @staticmethod 修饰器修饰,没有 cls 和 self 参数限制的方法我们称之为静态方法。
静态方法主要是用来存放逻辑性的代码,主要是一些逻辑属于类,但是和类本身没有实际性的交互,但是需要让这个功能成为这个类的成员,那么就可以采用静态方法。在静态方法中,不会涉及到类中的方法和属性的操作,可以理解为将静态方法寄存在该类的命名空间中。
# 定义的一个类
class Person(object):
# 类的属性
name = "小明"
# 静态方法
# 【1】定义在类中
# 【2】使用 @staticmethod修饰器修饰
# 【3】没有self、cls这样的参数限制
@staticmethod
def get_name():
return Person.name
1、静态方法是 类 中的方法,不需要被实例
2、可以使用【类名.静态方法名()】的形式调用,同时也可以使用实例对象调用
3、切记:静态方法没有self 和 cls这样的参数限制
**需求:**我想定义一个操作时间的类,比如操作属性小时、分钟、秒数。其中有一个获取某年某月日历的函数
# 导入日历模块
import calendar
# 创建一个日历类
class Time_Test(object):
def __init__(self,hour,minute,second):
self.hour = hour
self.minute = minute
self.second = second
# 请看,这个静态函数压根就和该类没有直接的交互,只是寄存在了该类的命名空间中
@staticmethod
def show_claendar(year,monther):
# 调用该模块下的配件month获取某年某月日历,并存储在变量中
cal = calendar.month(year,monther)
# 将变量返回
return cal
# 使用类名.静态方法名来调用输出静态方法
print(Time_Test.show_claendar(2020,8))
# 实例化对象
time = Time_Test(20,57,30)
# 使用实例对象去调用并输出静态方法
print(time.show_claendar(2020,7))