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()

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

  • 相关阅读:
    数字货币资金费策略
    如何利用CCXT交易数字货币合约
    三分钟玩转微软AI量化投资开源库QLib
    商品期货月度效应的统计
    数字货币无风险收益率又双叒叕扩大了!
    Omega System Trading and Development Club内部分享策略Easylanguage源码 (第二期)
    【mac】安装配置 homebrew, Nginx
    【Typescript+Vue】01. easy
    【python】sudo python -m SimpleHTTPServer
    【windows】docker to vmware
  • 原文地址:https://www.cnblogs.com/myIvan/p/9581658.html
Copyright © 2011-2022 走看看