python静态方法怎么调用_在python中调用静态方法

你需要做如下事情:class Person(object): #always inherit from object. It's just a good idea...

@staticmethod

def call_person():

print "hello person"

#Calling static methods works on classes as well as instances of that class

Person.call_person() #calling on class

p = Person()

p.call_person() #calling on instance of class

根据您的需要,classmethod可能更合适:class Person(object):

@classmethod

def call_person(cls):

print "hello person",cls

p = Person().call_person() #using classmethod on instance

Person.call_person() #using classmethod on class

这里的区别在于,在第二个示例中,类本身作为第一个参数传递给方法(而不是将实例作为第一个参数的常规方法,或者不接收任何附加参数的staticmethod)。

现在回答你真正的问题。我打赌您没有找到您的方法,因为您已经将类Person放入模块Person.py。

然后:import Person #Person class is available as Person.Person

Person.Person.call_person() #this should work

Person.Person().call_person() #this should work as well

或者,您可能希望从模块人员中导入类人员:from Person import Person

Person.call_person()

对于什么是模块,什么是类,这些都有点混乱。通常,我会尽量避免给类赋予与它们所在模块相同的名称。然而,由于标准库中的datetime模块包含一个datetime类,这一点显然没有受到太多的重视。

最后,值得指出的是,对于这个简单的示例,您不需要一个类:#Person.py

def call_person():

print "Hello person"

现在在另一个文件中,导入它:import Person

Person.call_person() #'Hello person'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值