【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路!
类的定义
假如要定义一个类 Point,表示二维的坐标点:# point.py
class Point:
def __init__(self, x=0, y=0):
self.x, self.y = x, y
最最根本的就是 __init__ 办法,相当于 C++ / Java 的构造函数。带双下划线 __ 的办法都是特别办法,除了 __init__ 还有很多,后面会有介绍。
参数 self 相当于 C++ 的 this,表示当前实例,所有办法都有这个参数,然则调用时并不须要指定。>>>frompoint import *
>>> p = Point(10, 10) # __init__ 被调用
>>> type(p)
>>> p.x, p.y
(10, 10)
几乎所有的特别办法(包含 __init__)都是隐式调用的(不直接调用)。
对一切皆对象的 Python 来说,类本身当然也是对象:>>> type(Point)
>>> dir(Point)
['__class__','__delattr__','__dict__', ...,'__init__', ...]
>>> Point.__class__
Point 是 type 的一个实例,这和 p 是 Point 的一个实例是一回事。
现添加办法 set:class Point:
...
def set(self, x, y):
self.x, self.y = x, y>>> p = Point(10, 10)
>>> p.set(0, 0)
>>> p.x, p.y
(0, 0)
p.set(...) 其实只是一个语法糖,你也可以写成 Point.set(p, ...),如许就能明显看出 p 就是 self 参数了:>>> Point.set(p, 0, 0)
>>> p.x, p.y
(0, 0)
值得留意的是,self 并不是关键字,甚至可以用其它名字替代,比如 this:class Point:
...
def set(this, x, y):
推荐阅读
在这个语法树构造中,body里包含着if构造中的语句return HttpResponse("2"),type为Compare表示该构造体为断定语句,left表示左值即源码中的type,test构造体中则是用来进行if断定,test中的ops对应着>>>详细阅读
地址:http://www.17bianji.com/lsqh/36335.html