静态函数(@staticmethod):
即静态方法,主要处理与这个类的逻辑关联;
静态方法是既不需要访问实例属性或者调用实例方法
也不需要访问类属性或者调用类方法的方法
类函数(@classmethod):
即类方法, 更关注于从类中调用方法, 而不是在实例中调用方法, 可以用作方法重载, 传入参数cls;
成员函数: 实例的方法, 只能通过实例进行调用;
具体应用:
日期的方法, 可以通过实例化(__init__)进行数据输出, 传入参数self;
可以通过类的方法(@classmethod)进行数据转换, 传入参数cls;
可以通过静态方法(@staticmethod)进行数据验证;
代码:
class Date(object): # 定义类属性 day = 0 month = 0 year = 0 # 初始化类 def __init__(self, day=0, month=0, year=0): self.day = day self.month = month self.year = year def display(self): return "{0}*{1}*{2}".format(self.day, self.month, self.year) # 定义类方法 @classmethod def from_string(cls, date_as_string): day, month, year = map(int, date_as_string.split('-')) date1 = cls(day, month, year) return date1 # 定义静态方法 @staticmethod def is_date_valid(date_as_string): day, month, year = map(int, date_as_string.split('-')) return day <= 31 and month <= 12 and year <= 3999 date1 = Date('31', '07', '2018') date2 = Date.from_string('31-07-2018') print(date1.display()) print(date2.display()) print(date2.is_date_valid('31-07-2018')) print(Date.is_date_valid('31-07-2018'))1.png (3.45 KB, 下载次数: 6)
运行结果
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |