python内置函数众多,需知其源由,记起来事半功倍
isinstance()
用法:确定某个量是不是某种类型。
解析:
(翻译)把函数拆开:is instance == 》 是实例,即该量是不是某类型的实例,是则返回True,不是返回False。
__init__()
用法(展示其中一种):
作为类中的初始化函数(构造函数),设置创建该类实例时必须传入的参数。
如下代码,设置学生类中构造函数__init__的参数有三个(self,name, score),每次创建学生实例的时候都要传递到三个参数。
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
def print_score(self):
print self.score
若无正确传参则报错,如下图,报错提示在创建该类实例‘Ronny = Student()’处需要传三个参数,只给了一个,那一个是实例本身(self),python解释器会自动传递。
更正如下,成功运行
解析:
在英文中‘init’是单词‘initialization’[ɪ,nɪʃəlaɪ'zeɪʃən] 的缩写,该单词是“初始化,赋初值”的意思。
__slots__(是个变量)
用法:
限制类的属性,在声明之外的属性不可添加(若无__slots__,python本身是支持动态添加属性的)
# -*- coding: utf-8 -*-
class Plant(object):
__slots__ = ('name', 'high')
# 用tuple类型将每个属性名称以字符串形式声明
print 'Successful Use!'
tree = Plant()
tree.name = 'mike'
tree.high = 3.9
tree.age = 60
运行结果:
第一次运行时没有加最后一句语句‘tree.age = 60’,实例的属性都在__slots__掌控之内,而第二次运行时报错提示Plant类中没有‘age’这个属性,因为不在__slots__声明的属性之中。
解析:
slot的英文相关翻译是:
- n. 位置;狭槽;水沟;硬币投币口
- 大概意思就是限制了一个区域,从而我们可以联想到__slots__的用法~
@property(是个语句)
添加在类定义中的方法前,装饰方法(装饰器),使方法可以变为属性调用,在检查属性是否不合标准时必须使用函数方法,而通过@property可以直接对属性赋值,若不合标准将按照方法内的设置进行报错。
property在英文中是“属性”的意思,将方法变为属性调用,可以联想。