• 技术文章 >Python技术 >Python基础教程

    在python中调用staticmethod用到参数

    小妮浅浅小妮浅浅2021-01-11 15:20:32原创2309

    提起staticmethod有些小伙伴不会使用,但如果我们说的是静态方法,相信就想起了相关的知识点了。毕竟大家对英文名称上不是很敏感,静态方法也是面向对象中三个调用方法之一,需要我们python初学者每个人都能掌握和运用,下面就在python中调用staticmethod是否需要用到参数的问题进一步探究。

    1.静态方法staticmethod

    定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法;

    调用:实例对象和类对象都可以调用。

    2.类中普通的方法,实际上既可以被类直接调用也可以被类的实例对象调用,但是被实例对象调用的时候,要求方法至少有一个参数,而且调用时会将实例对象本身传给第一个参数。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    >>> class Student(object):

        def __init__(self,name):

            self.name = name

        def sayHello(lang):

            print(lang)

            if lang == 'en':

                print('Welcome!')

            else:

                print('你好!')

       

         

    >>> Student.sayHello

    <function Student.sayHello at 0x02AC7810>

    >>> a = Student('Bob')

    >>> a.sayHello

    <bound method Student.sayHello of <__main__.Student object at 0x02AD03F0>>

    >>> Student.sayHello('en') # 类调用的时候,将'en'传给了lang参数

    en

    Welcome!

      

    >>> a.sayHello() # 类实例对象调用的时候,将对象本身自动传给了lang参数,不能再接收参数

    <__main__.Student object at 0x02AD03F0>

    你好!

      >>> a.sayHello('en')  Traceback (most recent call last):  File "<pyshell#7>", line 1, in <module>  a.sayHello('en')  TypeError: sayHello() takes 1 positional argument but 2 were given


    以上就是在python中调用staticmethod的一些方法,需要注意的是,在实例对象调用时,我们一定不能忽略了参数的问题。

    专题推荐:staticmethod
    上一篇:如何实现Python中的最大值函数max函数? 下一篇:python中选择staticmethod的好处

    相关文章推荐

    • Python之classmethod和staticmethod的区别

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网