首页 > 编程语言 >软件测试|Python基础之面向对象(三)

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

时间:2023-02-03 18:32:36浏览次数:34  
标签:调用 name Python self 面向对象 Student 软件测试 age 函数

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('普通函数')
----------------------------------------------------------------------------------

我是 普通函数 被修饰的普通函数,调用我都需要手动传参
我是 普通函数 被修饰的普通函数,调用我都需要手动传参


标签:调用,name,Python,self,面向对象,Student,软件测试,age,函数
From: https://blog.51cto.com/u_15640304/6036013

相关文章

  • 软件测试|Python基础之面向对象(四)
    Python面向对象之继承与派生继承python三大特征封装、继承、多态三者中继承最为核心,实际应用多,感受较为直观封装和多态略微抽象继承的概念继承的含义:在现实生活中,继承表......
  • 软件测试|Python基础之模块导入和使用
    Python模块导入和使用模块1、简介本质:模块是指内部具有一定功能(代码)的py文件2、模块的表现形式1、py文件(py文件也可以称之为是模块文件)2、含有多个py文件的文件夹(按照模块功......
  • pycharm设置python头文件模版
    钢铁知识库,一个学习python爬虫、数据分析的知识库。人生苦短,快用python。使用pycharm创建python文件时候,有时候需要自动生成想要的文件头,如何生成呢?只需要以下几步:在f......
  • python之路61 drf从入门到成神 4 反序列化类校验部分源码解析、断言、drf请求、响应格
    反序列化类校验部分源码解析#反序列化校验、什么时候开始执行校验视图类中的ser.is_valid(),就会执行校验,校验通过返回True,不通过返回False#入口:ser.is_valid......
  • python-json的自定义编码器与自定义解码器
    json的数据类型有限,在实际业务中可能会遇到数据无法使用JSON编码的问题。如果我们需要转发的数据有大量或位置不规则的json无法解析数据类型时,事先处理就变成了一件比较麻......
  • 【Azure Cache for Redis】Python Djange-Redis连接Azure Redis服务遇上(104, 'Connec
    问题描述使用Python连接AzureRedis服务,因为在代码中使用的是Djange-redis组件,所以通过如下的配置连接到AzureRedis服务:CACHES={"default":{"BACKEND":"dj......
  • Python 异步: 什么是事件循环 ?(6)
    asyncio程序的核心是事件循环。在本节中,我们将花点时间看一下asyncio事件循环。1.什么是Asyncio事件循环事件循环是用于在单个线程中执行协程的环境。事件循环是异......
  • Python---- 一闭三器
    一闭三器闭包装饰器迭代器生成器闭包保证数据安全闭包结构内层函数对外层函数的局部变量的使用,内层函数被称为闭包函数闭指的是:该函数的内部函数包......
  • Java基础之面向对象——抽象类、接口、枚举
    抽象类     越是处于顶层定义的类,实际上可以进一步地进行抽象。抽象类里可以有抽象方法(也可以没有)。抽象类完全由子类来实现,父类中不需要提供实现。例如,对于该父类......
  • 基于python的小翻译工具
    这里的翻译接口是基于百度翻译的API这里的方案是利用百度翻译开放平台实现的会稍微麻烦点,但是更加方便个性化翻译也可以通过爬虫的形式,直接操作百度翻译网页来实现前......