精华内容
下载资源
问答
  • 实例方法
    千次阅读
    2018-08-29 08:03:02

    实例方法(method)

    实例方法
    * 语法:

    class 类名(继承列表):
        def 实例方法名(self, 形参名1,形参名2,....):
            '方法文档字符串'
            语句块
    • 作用:
      用于描述一个对象的行为,让此类型的全部对象都拥有相同的行为
      *说明:
      实例方法的是指是函数,是定义在类内的函数
      实例方法至少有一个形参,第一个形参用来绑定调用这个方法的实例,一般命名’self’

    • 实例方法的调用语句:
      实例.实例方法名(调用传参)

      类名.实例方法名(实例.调用传参)
      实例见:

    # 此实例示意实例方法的定义和调用
    class Dog:
        '''创建一个Dog类, 此类用于描述一种
        小狗的行为和属性'''
    
        def eat(self, food):
            '''此方法用来描述狗吃东西的行为'''
            print('id为', id(self), '的小狗正在吃', food)
    
        def sleep(self, hour):
            '''此方法用来描述小狗睡觉的行为'''
            print('小狗睡了', hour, '小时')
    
        def play(self, obj):
            '''此方法描述小狗玩东西的行为'''
            print('小狗在玩', obj)
    
    
    # print(Dog)
    dog1 = Dog()  # 这是创建Dog类的一个实例,对象
    dog1.eat('骨头')
    dog1.sleep(1)
    dog1.play('ball')
    
    dog2 = Dog()  # 这是创建Dog类的第二个对象,第二只狗
    dog2.eat('狗粮')
    dog2.sleep(3)
    dog2.play('飞盘')
    更多相关内容
  • python静态方法、实例方法、类方法使用

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


    前言

    日常脚本编写过程中时常会用到python的静态方法、实例方法、类方法,本文主要记录自己对这几种方法的理解


    一、静态方法

    静态方法使用的关键字是@staticmethod,通过在方法前追加此装饰器该方法就属于一个静态方法,静态方法个人理解为它既不依赖实例对象也不依赖于类,它只是需要一个载体即可,所以无论是通过类对象直接调用还是实例对象进行调用都是可以的,需要注意的是在静态方法中无法使用实例属性和方法。所以在日常过程中如果有一个方法实现的功能比较独立的时候就可以考虑使用静态方法实现

    class testFunction():
    
        classAttribute ='monica'
        def __init__(self,example_name):
            self.example_name = example_name
        @staticmethod
        def testStatic():
            print('静态方法使用')
            print('调用类属性',testFunction.classAttribute)
            print('调用实例属性',self.example_name)
    if __name__ == '__main__':
        tf = testFunction('example_monica')
        #实例对象调用静态方法
        tf.testStatic()
        #类对象调用静态方法
        testFunction.testStatic()
    

    执行结果
    在这里插入图片描述

    二、实例方法

    实例方法入参第一个值,默认self指代当前调用的对象,不建议使用其它关键字代替,实例方法只能由实例对象进行调用,个人理解由于需要明确是哪个对象在使用当前方法所以实例方法与静态方法和类方法不同对调用者要求严格

    class testFunction():
    
        classAttribute ='monica'
        def __init__(self,example_name):
            self.example_name = example_name
    
        def testExample(self):
            print('实例方法')
            print('调用实例属性:',self.example_name)
            print('调用类属性:',testFunction.classAttribute)
    if __name__ == '__main__':
        tf = testFunction('example_monica')
        #实例对象调用方法
        tf.testExample()
        #类对象调用实例方法
        testFunction.testExample('test')
    

    执行结果
    在这里插入图片描述

    二、类方法

    类方法与静态方法类似需要一个关键词进行装饰@classmethod且方法入参第一个值默认为cls。类方法可以通过实例对象和类对象进行调用,在编码过程中发现类方法调用在实例对象初始化之前,故如果实现功能时需要在初始化前做一些校验的工作时可以考虑使用类方法,比如:在写入excel数据前,需要校验文件是否打开,那这个验证的方法即可以使用类方法实现

    class testFunction():
    
        classAttribute ='monica'
        def __init__(self,example_name):
            self.example_name = example_name
        @classmethod
        def testClassMethod(cls):
            print('类方法')
            print('调用类属性:',cls.classAttribute)
            print('调用实例属性:',cls.example_name)
    if __name__ == '__main__':
        tf = testFunction('example_monica')
        #实例对象调用类方法
        tf.testClassMethod()
        #类对象调用类方法
        testFunction.testClassMethod()
    

    执行结果
    在这里插入图片描述


    四、完整代码

    class testFunction():
    
        classAttribute ='monica'
        def __init__(self,example_name):
            self.example_name = example_name
        @staticmethod
        def testStatic():
            print('静态方法使用')
            print('调用类属性',testFunction.classAttribute)
            print('调用实例属性',self.example_name)
        def testExample(self):
            print('实例方法')
            print('调用实例属性:',self.example_name)
            print('调用类属性:',testFunction.classAttribute)
        @classmethod
        def testClassMethod(cls):
            print('类方法')
            print('调用类属性:',cls.classAttribute)
            print('调用实例属性:',cls.example_name)
    if __name__ == '__main__':
        tf = testFunction('example_monica')
        #实例对象调用静态方法
        tf.testStatic()
        #类对象调用静态方法
        testFunction.testStatic()
        #实例对象调用方法
        tf.testExample()
        #类对象调用实例方法
        testFunction.testExample('test')
        #实例对象调用类方法
        tf.testClassMethod()
        #类对象调用类方法
        testFunction.testClassMethod()
    
    
    

    总结

    以上为自己编码过程中的理解,如果不对的地方欢迎大佬指正和解惑

    展开全文
  • 实例方法、类方法、构造方法

    千次阅读 多人点赞 2019-11-19 14:11:00
    Java中类的方法分为类方法(用static修饰,也叫静态方法)和实例方法(没有用static修饰,也叫非静态方法) 实例方法,就是一般的方法 类方法,有static修饰符,典型的主函数 构造方法,没有返回值(就是连void都没有...

    Java中类的方法分为类方法(用static修饰,也叫静态方法)和实例方法(没有用static修饰,也叫非静态方法)
    实例方法,就是一般的方法
    类方法,有static修饰符,典型的主函数
    构造方法,没有返回值(就是连void都没有),方法名与类名一样

    public static void myMethod();//类方法
    public void myMethod2();//实例方法
    public Test(){}//构造方法,没有返回值,方法名与类名一样
    

    实例方法与类方法的区别:

    1、类方法是属于整个类,而不属于某个对象。
    2、类方法只能访问类成员变量,不能访问实例变量,而实例方法可以访问类成员变量和实例变量。
    3、在类方法中不能使用super、this关键字。
    4、类方法的调用可以通过类名.类方法和对象.类方法,而实例方法只能通过对象.实例方法访问。
    5、类方法只能访问类方法,而实例方法可以访问类方法和实例方法。
    6、类方法不能被覆盖,实例方法可以被覆盖。
    
    1. 构造方法—构造方法负责对象的初始化工作,为实例变量赋予合适的初始值。必须满足以下的语法规则:
    1、方法名与类名相同;
    2、不要返回类型(例如return、void等);
    3、不能被static、final、native、abstract和synchronized修饰,不能被子类继承
    

    1.1. 默认构造方法—默认构造方法时没有参数的构造方法,分为

    a.隐含的默认构造方法:public ClassName(){}
    b.程序显示定义默认构造方法:public Employee(){this("无名氏");}
    

    1.2. 重载构造方法—通过new创建一个对象后,在不同的条件下,对象可能会有不同的初始化行为,可以通过重载构造方法来表达对象的初始化行为。具体参考this关键字的用法。
    1.3. 子类调用父类的构造方法—父类的构造方法不能被子类调用,可以通过super语句调用父类的构造方法。例如:
    在这里插入图片描述
    用super调用父类的构造方法必须遵守以下规则:

    1. 子类的构造方法中不能直接通过父类的方法名调用父类的构造方法,使用super语句;
    2. 加入在子类的构造方法中有super语句,它必须作为构造方法的第一条语句(同this语句);
    

    1.4. 构造方法的作用域

    1、当前类的其他构造方法通过this语句调用;
    2、当前类的子类的构造方法通过super语句调用;
    3、在程序中通过new语句调用。
    

    1.5. 构造方法的private访问级别— 构造方法为private级别时,意味着只能在当前类中访问它:当前类的其他构造方法中可以通过this语句调用,此外还可以在当前类的成员方法中使用new调用。
    以下场合中,可以把类的所有构造方法声明为private:

    1、这个类中仅仅包含一些供其他程序调用的静态方法,没有任何实例方法。
    2、禁止这个类被继承。声明为private后,如果定义了它的子类,子类的方法中无法调用父类的任何构造方法。
    3、类需要把构造自身实例的细节封装起来,不允许其他程序通过new语句创建这个类的实例。提供静态方法。
    
    展开全文
  • 实例方法,属于方法类型的函数。 为什么要分为三种不同的方法呢?他们之间有什么区别和差异呢?首先这三种方法的可以获取类的属性和变量范围不同,具体区别如下: 类方法:不能获取构造函数定义的变量,可以...

    目录

    1、python中类的方法类别

    2、各个方法之间的功能差异

    3、各个方法的调用格式

    4、使用举例


    1、python中类的方法类别

    python中类的方法有三种,分别为:

    1. 类方法,通过装饰器@calssmethod进行修饰。
    2. 静态方法,通过装饰器@staticmethod进行修饰。
    3. 实例方法,属于方法类型的函数。

    2、各个方法之间的功能差异

    为什么要分为三种不同的方法呢?他们之间有什么区别和差异呢?首先这三种方法的可以获取类的属性和变量范围不同,具体区别如下:

    1. 类方法:不能获取构造函数定义的变量,可以获取类的属性。
    2. 静态方法:不能获取构造函数定义的变量,也不可以获取类的属性。
    3. 实例方法:既可以获取构造函数定义的变量,也可以获取类的属性值。

    3、各个方法的调用格式

    除了三种方法可以获取的类的属性存在差异,具体在方法本身被调用的方式上也有所差异,具体如下:

    1. 类方法:有两种调用方式,a.类名.类方法名     b.实例化调用
    2. 静态方法:有两种调用方式,a.类名.静态方法名    b.实例化调用
    3. 实例方法:见名知意,也许命名就是告诉大家,它只能通过实例化进行调用,事实也是。

    4、使用举例

    基于以上理解,举个例子:

    class FunctionTest:
        fun = "test"
    
        def __init__(self):
            self.__name = "function"
            self.__age = 2
    
        @classmethod
        def execute_class(cls):
            logging.info("this is class method!")
    
        @staticmethod
        def execute_static(x):
            logging.info("this is static method!")
            logging.info(f"{x} is a num.")
    
        def execute_normal(self):
            logging.info("This is normal method!")
    
    
    if __name__ == '__main__':
    
        # 实例化调用
        FT = FunctionTest()
        # 只能通过实例化调用
        FT.execute_normal()
        # 实例化调用
        FT.execute_static(7)
        FT.execute_class()
        # 类.方法名 调用
        FunctionTest.execute_static(9)
        FunctionTest.execute_class()

    执行结果如下:

    2022-26-04 17:15:45:INFO:This is normal method!
    2022-26-04 17:15:45:INFO:this is static method!
    2022-26-04 17:15:45:INFO:7 is a num.
    2022-26-04 17:15:45:INFO:this is class method!
    2022-26-04 17:15:45:INFO:this is static method!
    2022-26-04 17:15:45:INFO:9 is a num.
    2022-26-04 17:15:45:INFO:this is class method!

    展开全文
  • Java中实例方法与类方法

    千次阅读 2021-11-23 14:47:39
    Java中实例方法与类方法一、实例方法与类方法的定义二、实例方法和类方法的区别 一、实例方法与类方法的定义 1.声明方法时,方法类型前面不使用static修饰的是实例方法,用static修饰的是类方法,也称类方法。 例如...
  • 第7.14节 Python类中的实例方法详析

    千次阅读 2020-12-19 01:11:31
    第7.14节 Python类中的实例方法详析一、 实例方法的定义在本章前面章节已经介绍了类的实例方法实例方法的定义有三种方式:1. 类体中定义实例方法第一种方式很简单,就是在类体中定义,所有在类中定义的方法默认是...
  • 一、类方法和实例方法的调用先看一道选择题:下列哪种说法是正确的( )A. 实例方法可直接调用超类的实例方法B. 实例方法可直接调用超类的类方法C. 实例方法可直接调用其他类的实例方法D. 实例方法可直接调用本类...
  • 实例方法与类方法的区别

    千次阅读 2021-11-08 17:32:46
    类方法与实例方法的区别
  • 类方法和实例方法的区别

    千次阅读 2021-09-26 08:58:00
    类方法只能访问类方法,实例方法可以访问类方法和实例方法。 类方法只能访问类成员变量,不能访问实例变量; 实例方法可以访问类成员变量和实例变量。 类方法的调用可以通过类名,实例方法只能通过对象。 类方法不能...
  • A:静态方法是一个属于类而不属于对象(实例)的方法。(√) 静态方法可以在没有创建对象实例的情况下调用,其是可以通过类名引用。 B:静态方法只能访问静态数据。无法访问非静态数据(实例变量)。(√) 它这边的...
  • Python 实例方法、类方法和静态方法

    万次阅读 多人点赞 2018-03-30 20:17:19
    在 Python 中,实例方法(instance method),类方法(class method)与静态方法(static method)经常容易混淆。本文通过代码例子来说明它们的区别。 实例方法 Python 的实例方法用得最多,也最常见。我们先来...
  • 类中成员方法和实例方法

    千次阅读 多人点赞 2019-07-22 19:14:51
    成员变量:类中方法外声明变量 分类: 类变量:使用static修饰符修饰的成员变量。 实例变量:未使用static修饰符修饰的成员变量。 类变量与实例变量的区别? 类变量: 使用static修饰符修饰; 类变量是类的...
  • python3:类方法,静态方法和实例方法以及应用场景

    千次阅读 多人点赞 2018-10-20 13:29:52
    1.实例方法 在编程里经常用的是实例方法,直接用实例去调用, 只要 方法里有self 就可以断定是实例方法, 如 def method_name(self,*argc). 先看下边代码如下: class Date: def __init__(self,year,month,day)...
  • 实例方法只能由对象来调用吗? 例如 有如下类: class A { public void normalFunc(){ System.out.println("我只是一个普通的实例方法") } } 我们想调用这个普通方法之前,是不是得先new 一个对象,A a=new A...
  • js中实例方法、静态方法和原型方法详解

    千次阅读 多人点赞 2019-05-24 10:57:47
    实例方法 构造函数中this上添加的成员,在Cat构造方法里面,定义在this中的变量和方法,只有实例才能访问到:如this.name,this.move,this.eat这些都是实例拥有,无法通过Cat直接调用。 function Cat(name){ this....
  • 实例方法、类方法、静态方法

    千次阅读 2020-05-23 15:16:01
    实例方法、静态方法和类方法 示例方法:第一个参数为self,必须实例化之后才能调用的方法 类方法:使用@classmethod进行装饰,第一个参数为cls,可以被类调用,也可以被实例调用。 静态方法:使用@staticmethod进行...
  • Java静态方法和实例方法

    千次阅读 2021-02-12 12:38:41
    一:静态方法其实在我们第一天学习java的时候就使用了静态方法,主方法的就是一个静态方法,静态方法和静态属性一样使用static...方法名()”的方式访问,所以我们把普通方法又叫做实例方法(因为它依赖于实例对象存...
  • Java 基础之实例方法,实例变量,类方法,类变量

    千次阅读 多人点赞 2019-05-18 09:08:17
    实例变量(instance variable) ...实例方法(instance method) 实例方法:或叫成员方法(member method)。供实例用的方法,必须要先有实例,才能通过此实例调用实例方法。 类变量(class variable) 类...
  • 简述静态方法和实例方法的区别

    千次阅读 2020-11-14 09:53:12
    1.静态方法在编译时就加载了,而实例方法是实例化后加载,在调用静态方法时还没实例化,所以静态方法不能调用实例化方法。 2.静态方法可以直接类名.方法名或者对象名.方法名调用;实例方法只能实例化后,通过对象名....
  • 类方法和实例方法区别

    万次阅读 2019-06-15 09:13:50
    Objective-C里面既有实例方法也类方法。类方法(Class Method) 有时被称为工厂方法(Factory Method)或者方便方法(Convenience method)。工厂方法的称谓明显和一般意义上的工厂方法不同,从本质上来说,类方法可以独立...
  • 实例方法没有被 static 修饰。 2、静态方法中不能有 this 关键词。(我也不知道为啥,有大佬知道的,可以传授一下) 3、实例方法中可调用实例方法、静态方法。 4、静态方法中可调用静态方法。 5、静态方法中不能调用...
  • python中的类属性、实例属性、类方法、实例方法

    万次阅读 多人点赞 2018-07-03 10:45:22
    定义类 ...创建实例 xiaoming = Person() xiaohong = Person() 实例属性 xiaoming = Person() xiaoming.name = xiaoming xiaoming.age = 24 xiaoming.sex = man xiaohong = Person() xiaohong.n...
  • Python中至少有三种比较常见的方法类型,即实例方法,类方法、静态方法。 1.实例方法 定义:第一个参数是“self”,通过它可以使用实例的属性和方法,也可以使用类的属性和方法 调用:只能由实例对象调用 2.类...
  • python类的实例方法、静态方法和类方法区别及其应用场景 一、先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法。 ps.python中self,cls的区别 普通实例方法,第一个参数需要是self,它表示一...
  • C#中的静态方法与实例方法

    千次阅读 2018-10-18 22:26:37
    一、静态成员,实例成员 在C#中,通俗的讲,用static修饰**的成员我们称之为静态成员,没有经过static修饰的我们称之为...二、静态方法与实例方法 在C#中,用static修饰的方法我们称之为静态方法,没有经过static修...
  • this 可以出现在实例方法和构造方法中,但是不能出现在类方法中。 本文中关于实例成员和类成员 (static关键字修饰) 的介绍参考博客 类成员与实例成员的区别一张图片搞清楚 在实例方法中使用 this 1,代表当前对象 ...
  • java实例方法的调用,讲解

    千次阅读 2019-05-25 14:03:05
    public class thisTest{ public static void main(String[] args) { thisTest a = new thisTest();... //实例方法,引用的时候必须创建对象,通过,引用. 的方法访问 public void doSome() { System.out.pr...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,825,155
精华内容 1,530,062
关键字:

实例方法