跟老齐学Python之类的细节(2)
在上面的调用中,其实相当于前面的调用过程的分解动作。即先将实例a和方法函数foo绑定在一起,然后赋值给x,这时候x就相当于一个简单函数一样,可以通过上述方式传入参数。这里将实例和方法函数绑定的方式就是运用点号运算(object.method_function)
调用无绑定类方法对象
所谓类方法对象,就是不通过实例,而是用类进行点号运算来获得方法函数(ClassName.method_function)
>>> a = MyClass()
>>> y = MyClass.foo #这里没有用类调用
>>> y
<unbound method MyClass.foo>
这样的调用,就得到了无绑定方法对象,但是,调用的时候必须传入实例做为第一参数,如下
>>> y(a,"qiwsir.github.io")
qiwsir.github.io
否则,就报错。请看官特别注意报错信息
>>> y("qiwsir.github.io")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unbound method foo() must be called with MyClass instance as first argument (got str instance instead)
>>>
在编程实践中,似乎用实例方法调用更多一下。
文档字符串
在写程序的时候,必须要写必要的文字说明,没别的原因,除非你的代码写的非常容易理解,特别是各种变量、函数和类等的命名任何人都能够很容易理解,否则,文字说明是不可缺少的。
在函数、类或者文件开头的部分写文档字符串说明,一般采用三重引号。这样写的最大好处是能够用help()函数看。
"""This is python lesson"""
def start_func(arg):
"""This is a function."""
pass
class MyClass:
"""Thi is my class."""
def my_method(self,arg):
"""This is my method."""
pass
这样的文档是必须的。
当然,在编程中,有不少地方要用“#”符号来做注释。一般用这个来注释局部。
类其实并没有结束,不过本讲座到此对类暂告一段。看官要多实践。