• 怎么调用类中的成员方法


    举一个例子简单介绍类中的成员方法的调用方式

    # ### 类中的成员方法怎么调用
    class MyClass1:
        def func1(self):
            print(">> func1")
    
        def func2(cls):
            print(">> func2")
    
        def func3(self):
            print("------------func3开始------------")
            # self是类中的万能对象,在类中使用self调用类自己的成员方法时,不需要额外传参self或cls,可直接调用
            self.func1()
            self.func2()
            self.func5()
            self.func6()
    
            MyClass1.func1(self)
            MyClass1.func2(MyClass1)
            # self.func4()  # 这里会自动传参类对象self,但是func4不接受任何参数,所以会报错
            MyClass1.func4()
            print("------------func3结束------------")
    
        def func4():  # 这样写其实不合乎规范,因为对象是没法调用这个方法的,但是运行时不会报错
            print(">> func4")
    
        @staticmethod  # 静态方法装饰器
        def func5():
            print("静态方法>> func5")
    
        @classmethod  # 绑定类方法装饰器
        def func6(cls):
            print("绑定到类的方法>> func6")
    
    
    # 实例化类对象
    obj1 = MyClass1()
    
    # 两种方式调用func1函数,
    obj1.func1()  # 对象调用func1,自动传参obj1类对象
    MyClass1.func1(obj1)  # 类调用func1,需要手动传参obj1类对象
    
    # 查看类中的调用
    obj1.func3()
    
    MyClass1.func2(MyClass1)  # 类调用func2,需要手动传参MyClass1类
    
    # obj1.func4()  # 对象调用func4,自动传参obj1类对象,但是func4不接受任何参数,所以会报错,所以对象是没法直接调用func4函数的
    MyClass1.func4()  # 类调用func4,原本没有参数,不需要传参
    
    """调用静态方法,用类或对象调用都不需要传参,定义静态方法时也不要有self和cls参数,就像模块方法一样直接调用"""
    MyClass1.func5()
    obj1.func5()
    
    """用类调用调用绑定类方法会自动传参MyClass1类,定义绑定类方法时需要有参数cls"""
    MyClass1.func6()
    obj1.func6()  # 对象也可以调用,会自动传参MyClass1类,不用额外传参
    
    # 打印结果
    """
    >> func1
    >> func1
    ------------func3开始------------
    >> func1
    >> func2
    静态方法>> func5
    绑定到类的方法>> func6
    >> func1
    >> func2
    >> func4
    ------------func3结束------------
    >> func2
    >> func4
    静态方法>> func5
    静态方法>> func5
    绑定到类的方法>> func6
    绑定到类的方法>> func6
    """

    # 调用类中的成员属性就简单很多了,直接调用不用考虑传参
     
  • 相关阅读:
    DevExpress gridcontrol添加了复选框删除选中的多行/批量删除的方法
    PowerDesigner中在生成的数据库脚本中用name列替换comment列作为字段描述的方法
    int.TryParse 与 int.Parse 的区别
    .NET winform 的keypress事件中判断当用户按下的是哪个键
    XtraReport改变纸张方向
    .NET的 DataTable中某列求和
    SQL UNION 操作符
    如何在VUE中使用leaflet地图框架
    eslint+prettier 的 VSCode配置项
    前端使用Git 切换分支 查看线上远程,本地切换
  • 原文地址:https://www.cnblogs.com/banbosuiyue/p/12797221.html
Copyright © 2020-2023  润新知