写点什么

软件测试|Python 基础之面向对象(三)

  • 2023-09-15
    北京
  • 本文字数:1243 字

    阅读完需:约 4 分钟

Python 面向对象之动态静态方法

动静态方法

在类中定义的函数有多种特性


  1. 直接在类中定义函数再类中直接定义函数,默认绑定给对象,类调用时有几个参数就要传几个参数,对象调用时该函数的第一个参数默认为对象


# 定义一个类class Student:    # 类公用数据    school_name = '家里蹲大学'
# 对象独有数据 def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender
# 类公用方法(函数、功能) def curricula_variable(self): print(f'{self.name}正在选课')

# 类直接调用功能stu1 = Student('kangkang', 18, 'male')Student.curricula_variable(stu1)---------------------------------------------------------------------------kangkang正在选课
复制代码


  1. 绑定给类的函数被 @classmenthod 修饰的函数,默认绑定给类,类调用第一个参数就是类自身,对象也可以调用,应且会自动将产生该对象的类当作第一个参数传入


# 定义一个类class Student:    # 类公用数据    school_name = '家里蹲大学'
# 对象独有数据 def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender
# 类公用方法(函数、功能) def curricula_variable(self): print(f'{self.name}正在选课')
@classmethod def func(cls): # 绑定给类的函数,第一位新参为cls print('我是默认绑定给类的功能', cls)

# 类可直接调用Student.func()# 对象调用stu1 = Student('kangkang', 18, 'mela')stu1.func()-----------------------------------------------------------------------------我是默认绑定给类的功能 <class '__main__.Student'>我是默认绑定给类的功能 <class '__main__.Student'>
复制代码


  1. 被修饰的普通函数


被 @staticmethod 修饰的函数,是普通的函数,此函数无论是类还是对象调用,都必须手动传参


# 定义一个类class Student:    # 类公用数据    school_name = '家里蹲大学'
# 对象独有数据 def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender
# 类公用方法(函数、功能) def curricula_variable(self): print(f'{self.name}正在选课')
@classmethod def func(cls): print('我是默认绑定给类的功能', cls)
@staticmethod def func2(aaa): print(f'我是 {aaa} 被修饰的普通函数,调用我都需要手动传参', )

# 类直接调用Student.func2('普通函数')# 对象调用stu1 = Student('kangkang', 18, 'mela')stu1.func2('普通函数')----------------------------------------------------------------------------------
我是 普通函数 被修饰的普通函数,调用我都需要手动传参我是 普通函数 被修饰的普通函数,调用我都需要手动传参
复制代码


获取更多技术资料,请点击!

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
软件测试|Python基础之面向对象(三)_霍格沃兹测试开发学社_InfoQ写作社区