1.对象方法
在class中面向对象的方法,即默认参数为self的方法,该类方法只能被实例化的对象调用,类名不能调用。示例程序如下:
class Student:
# 对象方法,只能被实例调用,不能被类调用
def __init__(self, name, age):
self.name = name
self.age = age
# 对象方法,只能被实例调用,不能被类调用
def get_email(self):
return self.name + str(self.age) +"@School.com"
stu1 = Student("Mike",12) # 生成实例
print(stu1.get_email()) # 实例调用该方法
print(Student.get_email()) # 类名调用,会出错
输出结果:
2.类方法
类方法是类的方法,可以直接用类名进行调用,也可以通过实例化的对象进行调用,默认参数为cls,意为class。在class中,一般在类方法前加修饰器 @classmethod,表示类方法。示例程序如下:
class Student:
# 对象方法,只能被实例调用,不能被类调用
def __init__(self, name, age):
self.name = name
self.age = age
# 对象方法,只能被实例调用,不能被类调用
def get_email(self):
return self.name + str(self.age) +"@School.com"
@classmethod # 修饰器,被类调用,也可以被实例化对象调用
def from_string(cls, stu_string):
name, age = stu_string.split('-')
return cls(name, age)
stu_string = "Jone-17"
stu2 = Student.from_string(stu_string) # 被类调用
print(stu2.get_email())
stu3 = Student("Mily",15)
stu3.from_string("Mili-16") # 被实例化对象调用
print(stu3.get_email())
输出结果如下所示:
3.静态方法
静态方法可以理解为普通的方法或函数,其没有默认参数,修饰器为@staticmethod,示例程序如下:
class Student:
# 对象方法,只能被实例调用,不能被类调用
def __init__(self, name, age):
self.name = name
self.age = age
# 对象方法,只能被实例调用,不能被类调用
def get_email(self):
return self.name + str(self.age) +"@School.com"
@classmethod # 修饰器,被类调用,也可以被实例化对象调用
def from_string(cls, stu_string):
name, age = stu_string.split('-')
return cls(name, age)
@staticmethod
def is_workday(day):
if day.weekday() == 5 or day.weekday == 6:
return False
return True
from datetime import datetime
day = datetime(2020,8,3)
print(Student.is_workday(day))
输出为:

版权声明:本文为weixin_45727931原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。