学分高考 Python

python 如何调用类的方法

发布时间: 2023-04-07 16:55:04

python 如何调用类的方法

[��ǩ:����]

使用方法:

class A(object):  
    def foo(self,x):  
    #类实例方法  
        print "executing foo(%s,%s)"%(self,x)  
 
    @classmethod  
    def class_foo(cls,x):  
    #类方法  
        print "executing class_foo(%s,%s)"%(cls,x)  
 
    @staticmethod  
    def static_foo(x):  
    #静态方法  
        print "executing static_foo(%s)"%x

调用方法:

a = A()  
a.foo(1)     //print   : executing foo(<__main__.A object at 0xb77d67ec>,1)
  
a.class_foo(1)    //executing class_foo(<class '__main__.A'>,1)  
A.class_foo(1)    //executing class_foo(<class '__main__.A'>,1)  
  
a.static_foo(1)    //executing static_foo(1)  
A.static_foo(1)   //executing static_foo(1)

类方法和静态方法都可以被类和类实例调用,类实例方法仅可以被类实例调用。

类方法的隐含调用参数是类,而类实例方法的隐含调用参数是类的实例,静态方法没有隐含调用参数。

python定义的类怎么用

python定义的类使用方法:

使用“obj=类名()”语句将类实例化,然后用“obj.函数名”就可以调用类里面定义的各种函数了

示例如下:

将Bili类实例化,然后就可以使用类里的函数

更多Python知识,请关注:Python自学网!!

python 类方法,静态方法,普通方法比较2019-03-22

1.类方法用@classmethod:

        用途:一般用来对类属性进行限制性操作

        用法:该方法的调用者(不管是类调用还是实例调用),会默认把该类作为第一个参数传进来(调用者不必显示指定),这样该方法内部可以获取到该类,从而对类属性进行操作。实际用途可以用来限制对类属性的访问,不管是类调用还是实例调用,能保证修改的都是类属性。

2.静态方法用@staticmethod:

        用途:用来实现工具性方法

        用法:如果方法内部没有涉及到对实例属性的操作,可以把该方法定义为静态方法,不管是类调用还是实例调用,都能直接调用该方法实现相应功能。

3.普通方法:

        用途:实例调用的方法

        用法:方法内部涉及到对实例属性的操作,实例调用该方法时会自动默认将实例的引用作为第一个参数传进去。也可以用类直接访问,不过这样访问时需要手动传入第一个参数,也就是一个实例的引用。

附加: @property的使用(从语义规范上来说,只用于普通方法,也就是对实例变量进行控制,但也可以强行用来对类变量进行控制)

对私有变量的控制访问可以借鉴java的get、set方式。这没有任何问题。唯一的问题就是不直观,把对变量的访问变成了对方法的访问。而@property的作用就是还原这种直观的访问方式,可以像访问变量一样访问@property修饰的方法。注意:如果不想让别人修改某变量,可以用不写@XXX.setter方法来实现。

总结:不管方法是哪一种方法(类方法,静态方法,还是普通的实例方法),都可以用类直接访问和用实例进行访问,只是参数多传一个多传一个的问题。更重要的是语义的规范,语法上没什么问题。

python3 静态方法和类方法的区别

python中,方法分为三类实例方法、类方法、静态方法。代码如下:
class Test(object):
def InstanceFun(self):
print("InstanceFun");
print(self);
@classmethod
def ClassFun(cls):
print("ClassFun");
print(cls);
@staticmethod
def StaticFun():
print("StaticFun");
t = Test();
t.InstanceFun();# 输出InstanceFun,打印对象内存地址“<__main__.Test object at 0x0293DCF0>”
Test.ClassFun(); # 输出ClassFun,打印类位置 <class '__main__.Test'>
Test.StaticFun(); # 输出StaticFun
t.StaticFun(); # 输出StaticFun
t.ClassFun(); # 输出ClassFun,打印类位置 <class '__main__.Test'>
Test.InstanceFun(); # 错误,TypeError: unbound method instanceFun() must be called with Test instance as first argument
Test.InstanceFun(t); # 输出InstanceFun,打印对象内存地址“<__main__.Test object at 0x0293DCF0>”
t.ClassFun(Test); # 错误 classFun() takes exactly 1 argument (2 given)

(来源:学分高考 https://www.xuefen.net)文章共3312字

温馨提示:
本文【python 如何调用类的方法】由作者教培参考提供。该文观点仅代表作者本人,学分高考系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系管理员或作者进行删除。
我们采用的作品包括内容和图片部分来源于网络用户投稿,我们不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系我站将及时删除。
内容侵权、违法和不良信息举报
Copyright @ 2024 学分高考 All Rights Reserved 版权所有. 湘ICP备17021685号