zoukankan      html  css  js  c++  java
  • python中的类方法、静态方法、对象方法

    注:以下都是以公有为前提,私有方法只能在类内部调用,不需多讲。

    1、对象方法

    这种方法都有一个默认参数:self  这代表实例的这个对象

        def __init__(self):
            print("初始化对象")

    类是不能直接调用对象方法:

    class User(object):
        name = 'zs'
        def __init__(self):
            print("初始化对象")
    User.__init__()

    这样调用抛出一个错误:TypeError: __init__() missing 1 required positional argument: 'self'

    2、类方法

    类方法顾名思义,类的方法,可以直接用类名进行调用;也可以通过类实例化的对象进行调用

    class User(object):
        name = 'zs'
        __pass = 1223
        def __init__(self):
            print("初始化对象")
    
        @classmethod #修饰器
        def changeName1(cls):
            cls.name = 'ls'
            print("类的方法%s"%(cls.__pass))

    changeName1就是类方法,前面需要注明修饰器:@classmethod  ,并且有一个默认参数cls 也就是这个类本身。

    3、静态方法

    其实静态方法可以理解为一种特殊的类方法,它跟普通类方法就两点区别:

    (1)修饰器不一样

    (2)没有默认参数

    其余的跟类方法一模一样

    class User(object):
        name = 'zs'
        __pass = 1223
        def __init__(self):
            print("初始化对象")
    
        @classmethod #修饰器
        def changeName1(cls):
            cls.name = 'ls'
            print("类的方法%s"%(cls.__pass))
        @staticmethod
        def changeName2():
            User.name = 'ww'
            print("静态方法")
    u = User()
    u.changeName1()
    User.changeName1()
    u.changeName2()
    User.changeName2()

    总结:一个类实例化的对象可以调用类里面所有的公共方法,类只能调用类方法和静态方法(如果是私有方法,只能再类内部调用。)

  • 相关阅读:
    第二阶段每日总结10
    第二阶段每日总结09
    第二阶段每日总结08
    第二周总结站立会议07
    第二周总结站立会议06
    第二周总结站立会议05
    第二阶段站立会议04
    Beta阶段项目总结
    Alpha阶段项目总结
    软件说明书
  • 原文地址:https://www.cnblogs.com/myIvan/p/9581658.html
Copyright © 2011-2022 走看看