python3中的实例方法类方法和静态方法

类方法可以用类对象或者类名直接调用
静态方法也可以用类名或者类对象调用

class Wh():
    MYNAME = "我是测试的类属性的值"
    def __init__(self, name):
        self.name = name

    def whtest1(self, test_parameter):
        print("whtest1分割线====================================================whtest1分割线")
        print("我是wh类里的实例方法111111111111")
        print("直接self.name调用实例属性", self.name)
        print("Wh.MYNAME调用类属性", Wh.MYNAME)
        print("打印whtest1实例方法的参数test_parameter", test_parameter)
        print("self.MYNAME调用类属性", self.MYNAME)
        print("whtest1分割线====================================================whtest1分割线")

    def whtest2(self):
        print("whtest2分割线===========================================whtest2分割线")
        print("我是wh类里的实例方法2222222222")
        print("下面调用实例方法whtest1")
        self.whtest1("我是在whtest2里面调用的whtest1实例方法传递的参数 {0}".format(Wh.MYNAME))
        print("调用实例方法whtest1完了")
        print("whtest2分割线===========================================whtest2分割线")

    @staticmethod
    def whstatic_test():
        print("whstatic_test分割线=====================whstatic_test分割线")
        print("我是静态方法")
        print("静态方法Wh.MYNAME调用", Wh.MYNAME)
        print("whstatic_test分割线=====================whstatic_test分割线")

    @classmethod
    def class_test(cls):
        print("class_test分割线=====================class_test分割线")
        print("我是类方法")
        print("cls.MYNAME调用打印类属性", cls.MYNAME)
        print("Wh.MYNAME调用打印类属性", Wh.MYNAME)
        print("class_test分割线=====================class_test分割线")



if __name__ == '__main__':
    # 创建实例
    print("****************************************************************************")
    test = Wh("weisong")
    print("****************************************************************************")

    # 用创建的实例调用实例方法1
    print("*****************************************************************************")
    test.whtest1("自己传的whtest1实例方法传递的参数")
    print("*****************************************************************************")

    # 用创建的实例调用实例方法2
    print("*****************************************************************************")
    test.whtest2()
    print("*****************************************************************************")

    # 调用静态方法
    print("*****************************************************************************")
    Wh.whstatic_test()
    print("*****************************************************************************")

    # 调用类方法
    print("*****************************************************************************")
    Wh.class_test()
    print("*****************************************************************************")

结果打印

****************************************************************************
****************************************************************************
*****************************************************************************
whtest1分割线====================================================whtest1分割线
我是wh类里的实例方法111111111111
直接self.name调用实例属性 weisong
Wh.MYNAME调用类属性 我是测试的类属性的值
打印whtest1实例方法的参数test_parameter 自己传的whtest1实例方法传递的参数
self.MYNAME调用类属性 我是测试的类属性的值
whtest1分割线====================================================whtest1分割线
*****************************************************************************
*****************************************************************************
whtest2分割线===========================================whtest2分割线
我是wh类里的实例方法2222222222
下面调用实例方法whtest1
whtest1分割线====================================================whtest1分割线
我是wh类里的实例方法111111111111
直接self.name调用实例属性 weisong
Wh.MYNAME调用类属性 我是测试的类属性的值
打印whtest1实例方法的参数test_parameter 我是在whtest2里面调用的whtest1实例方法传递的参数 我是测试的类属性的值
self.MYNAME调用类属性 我是测试的类属性的值
whtest1分割线====================================================whtest1分割线
调用实例方法whtest1完了
whtest2分割线===========================================whtest2分割线
*****************************************************************************
*****************************************************************************
whstatic_test分割线=====================whstatic_test分割线
我是静态方法
静态方法Wh.MYNAME调用 我是测试的类属性的值
whstatic_test分割线=====================whstatic_test分割线
*****************************************************************************
*****************************************************************************
class_test分割线=====================class_test分割线
我是类方法
cls.MYNAME调用打印类属性 我是测试的类属性的值
Wh.MYNAME调用打印类属性 我是测试的类属性的值
class_test分割线=====================class_test分割线
*****************************************************************************
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值