类的定义和使用
01.类和对象
类:类型,自定义各种类型用于对应现实生活,例如student,teacher类
对象:变量,类的实例化,用类创建的具体对象
1.__init__(self):构造函数(构造方法)
- 可以包含多个参数,但是必须包含self参数
- 且self必须为第一个参数
- slef不需要手动传递参数
2.类的实例化:
格式:类名(参数),这里放的参数会传入__init__构造函数中
3.访问
类中访问当前对象的属性和方法:通过self
对象访问属性和方法:通过“.”运算符
class student:
def __init__(self,name,class_idx):
self.name=name
self.class_idx=class_idx
def output(self):
print(self)
print(self.name,self.class_idx)#内部访问
a=student("小明",5)#外部访问
print(a)
print(a.name,a.class_idx)
a.output()
02.属性和方法
1.属性:
类的属性(类变量):在类体中、所有函数外定义的变量,使用时:类名+.+变量名
实例属性(实例变量):以self.变量名定义的变量,使用时:实例名+.+变量名、self+.+变量名
2.方法
实例方法:通常情况下,在类中定义的方法默认都是实例方法
- 使用时:实例名+.+方法名、self+.+方法名
类方法:与实例方法相似,它最少也要包含一个参数,只不过类方法中通常将其命名为cls,类方法需要使用@classmethod修饰符进行修饰
- 使用时:类名+.+方法名
类静态方法:没有类似self、cls这样的特殊参数,无法调用任何类属性和类方法。使用@staticmethod修饰
- 使用时:类名+.+方法名
class student:
sex_list=['boy','girl']def __init__(self,name,sex,class_idx):
self.name=name
self.sex=sex
self.class_idx=class_idx
def get_sex(self):
return self.sex_list[self.sex]
print(student.get_sex_list())
a=student("小明",1,5)
print(a.get_sex())