一些python常用内置函数及语句的理解#1

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在英文中是“属性”的意思,将方法变为属性调用,可以联想。

    

    

猜你喜欢

转载自blog.csdn.net/GBA_Eagle/article/details/80773927