首页 > 编程语言 >Python基础指面向对象:2、动静态方法

Python基础指面向对象:2、动静态方法

时间:2022-11-03 17:25:12浏览次数:35  
标签:调用 静态方法 name Python self 面向对象 Student age 函数

面向对象

一、动静态方法

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

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正在选课

2、绑定给类的函数

​ 被@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'>

3、被修饰的普通函数

​ 被@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://www.cnblogs.com/kangssssh/p/16855162.html

相关文章

  • 面向对象(下)
    目录面向对象(下)动静态方法面向对象之继承理论继承的本质对象查找名字的顺序(非常重要)经典类和新式类基于继承的派生方法(重要)作业面向对象(下)动静态方法在类中定义的函数有......
  • Python基础之面向对象:3、继承与派生
    面向对象一、三大特征之继承python三大特征:封装、继承、多态三者中继承最为核心,实际应用对,感受较为直观封装和多态略微抽象1、继承的概念继承的含义:​......
  • 计算机二级python备考刷题知识点总结(二)
    1、center()语法:str.center(width,fillchar)注:fillchar必须要用引号引起了center()返回一个原字符串居中,并使用填充字符填充到长度为width的新字符串,默认填充字符为空格......
  • Python中使用pyserial实现串口通信
    简介pyserial是基于Python实现的,用于操作串口的第三方库,它支持Windows、Linux、OSX、BSD等多个平台。本文主要讲解在Windows环境下使用pyserial来实现串口通信的基本方......
  • 面向对象之继承
    动静态方法面向对象之继承理论继承基本操作对象查找名字的顺序(非常重要)继承本质基于继承的派生方法(重要)动静态方法1.绑定给对象的方法#类中定义的函数有多种......
  • 面向对象:继承、动静态方法
    目录一、动静态方法1类中直接定义函数2被@classmethod修饰的函数3静态函数被@staticmethod修饰的函数二、面向对象-继承1面向对象三大特性2继承的概念1.继承的......
  • 面向对象2、动静态方法、继承、名字查找顺序、经典类、新式类、派生方法
    目录今日内容概要今日内容详细动静态方法面向对象之继承的概念继承的本质名字的查找顺序经典类与新式类派生方法作业今日内容概要动静态方法面向对象之继承理论继承基......
  • 面向对象2
    今日内容详细面对对象动静态方法在类中定义的函数有多种特性classStudent: school_name='摆烂大学'1.类中直接定义函数默认绑定给对象类调用有几个参数传几个......
  • python中iterable和iterator
    iterable:可迭代对象可以一个一个的返回它的成员,比如list,str,tuple,dict,fileobjects它可以在forloop种使用,forloopin后面接的必须是一个可迭代对象iterator:迭代......
  • python 中print函数实现输出不换行
     001、[root@pc1test3]#python2##python2Python2.7.5(default,Jun282022,15:30:04)[GCC4.8.520150623(RedHat4.8.5-44)]onlinux2Type"help......