python中类的函数的调用

    这里要考虑的重要事项是您正在使用的变量和/或函数名称的范围。 全局范围意味着 一切都可以看到它,无论是在顶层,在函数内部,还是在一个类中的方法内部。     本地范围意味着它已锁定在该块的上下文中,并且块外的任何内容都无法看到它。在 您的情况下,该块是一个函数。      1、以Student类为例,在Python中,定义类如下:
class Student(object):
    pass
2、实例:定义好了类,就可以通过Student类创建出Student的实例,创建实例是通过类 名+()实现:
student = Student()
3.类起模板作用,属性写死,属性也可成变量方法: Python当中的一个内置方法__init__方法,例如在Student类时,把name、score等属性绑 上去:
class Student(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score
实际应用:
>>>student = Student("Hugh", 99)
>>>student.name
"Hugh"
>>>student.score
99
4、在类中的函数调用类中的属性。     既然Student类实例本身就拥有这些数据,那么要访问这些数据,就没必要从外面的 函数去访问,而可以直接在Student类的内部定义访问数据的函数(方法)
class Student(obiect):
    def __init__(self, name, score):
        self.name = name
        self.score = score
    def print_score(self):
        print "%s: %s" % (self.name, self.score)

>>>student = Student("Hugh", 99)
>>>student.print_score
Hugh: 99
5、self代表类的实例 (1)self代表的是类的实例。而self.__class__则指向类。
class Test:
    def ppr(self):
        print(self)
        print(self.__class__)

t = Test()
t.ppr()
执行结果:
<__main__.Test object at 0x000000000284E080>
<class '__main__.Test'>
    注意:把self换成this,结果也一样,但Python中最好用约定俗成的self。     在Python解释器的内部,当我们调用t.ppr()时,实际上Python解释成Test.ppr(t), 【报错】的例子如下:
class Test:
    def ppr():
        print(self)
t = Test()
t.ppr()
命令行如下:
Traceback (most recent call last):
  File "cl.py", line 6, in <module>
    t.ppr()
TypeError: ppr() takes 0 positional arguments but 1 was given
        运行时提醒错误如下:ppr在定义时没有参数,但是我们运行时强行传了一个参数。 由于上面解释过了t.ppr()等同于Test.ppr(t),所以程序提醒我们多传了一个参数t。 (2)不用self,类中函数参数不一定要必须有self,【1】有参数可以使用 @classmethod类方法【2】无参数直接调用 【1】中的
class Test:
    @classmethod
    def ppr(cls):
        print(__class__)
Test.ppr()、、
运行结果:
<class '__main__.Test'>
【2】中的
class Test:
    @classmethod
    def ppr():
        print(__class__)
Test.ppr()

运行结果:
<class '__main__.Test'>
同一个类中同级函数的相互调用:
class DemoSpider(scrapy.Spider):
def parse(self, response):
self.slideBlank()
def slideBlank(self):
pass来源:范之度

物联沃分享整理
物联沃-IOTWORD物联网 » python中类的函数的调用

发表评论