python类中方法调用自己类的方法_python 类中方法总结 --- 实例方法、类方法、静态方法...

在python的类语法中,可以出现三种方法,具体如下:

(1)实例方法

1)第一个参数必须是实例本身,一般使用【self】表示。

2)在实例方法中,可以通过【self】来操作实例属性,【类名】来操作类属性。

3)实例方法只能通过实例对象去调用,尽管也可以通过类名间接调用【类名.方法名(self, ...)】,但此时仍然需要传入self对象。

(2)类方法

1)使用【@classmethod】修饰函数,且第一个参数必须是类本身,一般使用【cls】表示。

2)在类方法中,可以使用【cls=类名】来操作类属性,但是不能操作实例属性(self对象中存储的变量)。

3)类方法可以通过实例对象或者类对象调用。

(3)静态方法

1)使用【@staticmethod】修饰函数,不需要使用任何参数表示。与普通函数一样,只是将该方法放到了类中实现而已。

2)使用方式与类方法一样,参考类方法中的 2)、3)。(注:静态方法只能通过【类名】去操作类属性;)

案例1:实例方法、类方法、静态方法使用

classFoo(object):"""类三种方法语法形式"""count= 0 #统计实例对象的数量

class_method_count = 0 #统计类方法的调用次数

#实例方法

def __init__(self, name):

self.name=name

Foo.count+= 1

#实例方法

definstance_method(self):print("是类{}的实例方法,只能被实例对象调用".format(Foo))print("产生了一个<{}>实例,共有<{}>个实例对象".format(self.name, Foo.count))#类方法

@classmethoddefclass_method(cls):print("是类{}的类方法,可以被实例对象、类对象调用".format(cls))

cls.__static_method_test()

cls.class_method_count+= 1

#静态方法

@staticmethoddefstatic_method():print("是类{}的静态方法,可以被实例对象、类对象调用".format(Foo))print("+++以下内容为类方法class_method()的运行结果:")

Foo.class_method()

@staticmethoddef __static_method_test():print("调用了静态方法 static_method_test()")print("--"*20 + "实例方法测试" + "--"*20)

obj1= Foo("dog")

obj1.instance_method()#<=> Foo.ins

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,有三种型的方法实例方法方法静态方法。 1. 实例方法实例方法是最常用的方法型。它们是由类中的对象调用方法。在调用实例方法时,对象本身自动作为第一个参数(一般被称为self)传递给方法实例方法可以访问和修改对象的属性。 示例: ```python class MyClass: def instance_method(self, arg1, arg2): # 通过self访问对象的属性 self.arg1 = arg1 self.arg2 = arg2 print("Instance method called with {} and {}".format(arg1, arg2)) obj = MyClass() obj.instance_method("Hello", "World") # 调用实例方法 ``` 2. 方法方法是使用@classmethod装饰器声明的方法方法实例方法的区别在于,方法接收的第一个参数是本身(通常被称为cls),而不是实例方法通常用于创建工厂函数或者用于修改属性。 示例: ```python class MyClass: class_var = 0 @classmethod def class_method(cls, arg1, arg2): cls.class_var += 1 # 修改属性 print("Class method called with {} and {}".format(arg1, arg2)) MyClass.class_method("Hello", "World") # 调用方法 ``` 3. 静态方法静态方法是使用@staticmethod装饰器声明的方法静态方法方法实例方法的区别在于,它们没有参数传递给实例静态方法通常用于实现与相关的实用函数。 示例: ```python class MyClass: @staticmethod def static_method(arg1, arg2): print("Static method called with {} and {}".format(arg1, arg2)) MyClass.static_method("Hello", "World") # 调用静态方法 ``` 总结: - 实例方法:由对象调用,至少需要一个self参数。 - 方法:由调用,至少需要一个cls参数。 - 静态方法:由调用,没有默认参数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值