面向对象一、动静态方法
在类中定义的函数有多种特性1、直接在类中定义函数? 再类中直接定义函数,默认绑定给对象,类调用时有几个参数就要传几个参数,对象调用时该函数的第一个参数默认为对象
# 定义一个类class Student:# 类公用数据school_name = '家里蹲大学'# 对象独有数据def __init__(self, name, age, gender):self.name = nameself.age = ageself.gender = gender# 类公用方法(函数、功能)def curricula_variable(self):print(f'{self.name}正在选课')# 类直接调用功能stu1 = Student('kangkang', 18, 'male')Student.curricula_variable(stu1)---------------------------------------------------------------------------kangkang正在选课
2、绑定给类的函数?被@classmenthod修饰的函数,默认绑定给类,类调用第一个参数就是类自身,对象也可以调用,应且会自动将产生该对象的类当作第一个参数传入【Python基础指面向对象:2、动静态方法】
# 定义一个类class Student:# 类公用数据school_name = '家里蹲大学'# 对象独有数据def __init__(self, name, age, gender):self.name = nameself.age = ageself.gender = gender# 类公用方法(函数、功能)def curricula_variable(self):print(f'{self.name}正在选课')@classmethoddef func(cls):# 绑定给类的函数,第一位新参为clsprint('我是默认绑定给类的功能', cls)# 类可直接调用Student.func()# 对象调用stu1 = Student('kangkang', 18, 'mela')stu1.func()-----------------------------------------------------------------------------我是默认绑定给类的功能 <class '__main__.Student'>我是默认绑定给类的功能 <class '__main__.Student'>
3、被修饰的普通函数?被@staticmethod修饰的函数,是普通的函数,此函数无论是类还是对象调用,都必须手动传参# 定义一个类class Student:# 类公用数据school_name = '家里蹲大学'# 对象独有数据def __init__(self, name, age, gender):self.name = nameself.age = ageself.gender = gender# 类公用方法(函数、功能)def curricula_variable(self):print(f'{self.name}正在选课')@classmethoddef func(cls):print('我是默认绑定给类的功能', cls)@staticmethoddef func2(aaa):print(f'我是 {aaa} 被修饰的普通函数,调用我都需要手动传参', )# 类直接调用Student.func2('普通函数')# 对象调用stu1 = Student('kangkang', 18, 'mela')stu1.func2('普通函数')----------------------------------------------------------------------------------我是 普通函数 被修饰的普通函数,调用我都需要手动传参我是 普通函数 被修饰的普通函数,调用我都需要手动传参
经验总结扩展阅读
- Python基础之面向对象:3、继承与派生
- 从ObjectPool到CAS指令
- 2022年11月27日五行穿衣指南
- 现代 CSS 指南 -- at-rule 规则扫盲
- 下个月锦鲤加持 财运指数飙升的3星座生活迎来好运
- Typora图床上传配置:PicGo+Gitee 不完全指南
- 二 【单元测试】Junit 4--eclipse配置Junit+Junit基础注解
- 2023年1月29日剪指甲黄道吉日 2023年1月29日是剪指甲的黄道吉日吗
- 2023年农历八月初三剪指甲吉日 2023年9月17日剪指甲行吗
- 为什么剪指甲时不会感到疼?