-
__len__()方法,就可以用len()函数返回Students实例的“长度”查看全部
-
第一个score(self)是get方法,用@property装饰; 第二个score(self, score)是set方法,用@score.setter装饰,@score.setter是前一个@property装饰后的副产品; 第三个grade(self)是get方法,用@score.getter装饰;查看全部
-
如果一个属性由双下划线开头(__),该属性就无法被外部访问。 self.__job = 'Student'查看全部
-
要定义关键字参数,使用 **kw; 除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。 参考代码: class Person(object): def __init__(self, name, gender, birth, **kw): self.name = name self.gender = gender self.birth = birth for k, v in kw.iteritems(): setattr(self, k, v)查看全部
-
在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上以下属性: class Person(object): def __init__(self, name, gender, birth): self.name = name self.gender = gender self.birth = birth __init__() 方法的第一个参数必须是 self(也可以用别的名字,但建议使用习惯用法),后续参数则可以自由指定,和定义函数没有任何区别。 相应地,创建实例时,就必须要提供除 self 以外的参数: xiaoming = Person('Xiao Ming', 'Male', '1991-1-1') xiaohong = Person('Xiao Hong', 'Female', '1992-2-2') 有了__init__()方法,每个Person实例在创建时,都会有 name、gender 和 birth 这3个属性,并且,被赋予不同的属性值,访问属性使用.操作符: print xiaoming.name # 输出 'Xiao Ming' print xiaohong.birth # 输出 '1992-2-2'查看全部
-
如何让每个实例拥有各自不同的属性?由于Python是动态语言,对每一个实例,都可以直接给他们的属性赋值,例如,给xiaoming这个实例加上name、gender和birth属性: xiaoming = Person() xiaoming.name = 'Xiao Ming' xiaoming.gender = 'Male' xiaoming.birth = '1990-1-1' 给xiaohong加上的属性不一定要和xiaoming相同: xiaohong = Person() xiaohong.name = 'Xiao Hong' xiaohong.school = 'No. 1 High School' xiaohong.grade = 2 实例的属性可以像普通变量一样进行操作: xiaohong.grade = xiaohong.grade + 1查看全部
-
class Person(object): 定义类Person pass xiaoming = Person() 创建实例使用“类名+()” xiaohong = Person() print xiaoming 打印实例 print xiaohong print xiaoming == xiaohong 比较两个实例是否相等查看全部
-
functools.partial(function, prefix=default) 通过赋值 function 函数的参数的默认值构造新的易调用函数查看全部
-
使用装饰器会改变原函数的 f.__name__、 f.__doc__ 等属性 使用 @functools.wraps(f) 自动完成函数属性的还原查看全部
-
带参数的 decorator 在无参的外层套上带参数 prefix 的函数,在内层函数使用参数 prefix查看全部
-
利用ImportError错误,我们经常在Python中动态导入模块: try: from cStringIO import StringIO except ImportError: from StringIO import StringIO try 的作用是捕获错误,并在捕获到指定错误时执行 except 语句。查看全部
-
Python的os.path模块提供了 isdir() 和 isfile()函数,请导入该模块,并调用函数判断指定的目录和文件是否存在。 注意: 1. 由于运行环境是平台服务器,所以测试的也是服务器中的文件夹和文件,该服务器上有/data/webroot/resource/python文件夹和/data/webroot/resource/python/test.txt文件,大家可以测试下。 2. 当然,大家可以在本机上测试是否存在相应的文件夹和文件。 import os print os.path.isdir(r'C:\Windows') print os.path.isfile(r'C:\Windows\notepad.exe') 如果使用import导入模块名,由于必须通过模块名引用函数名,因此不存在冲突: import math, logging print math.log(10) # 调用的是math的log函数 logging.log(10, 'something') # 调用的是logging的log函数 如果使用 from...import 导入 log 函数,势必引起冲突。这时,可以给函数起个“别名”来避免冲突: from math import log from logging import log as logger # logging的log现在变成了logger print log(10) # 调用的是math的log logger(10, 'import from logging') # 调用的是logging的log查看全部
-
利用Python的 *args 和 **kw,保证任意个数的参数的函数都能正常调用查看全部
-
装饰器适用场景查看全部
-
使用 @ 语法简化装饰器函数调用查看全部
举报
0/150
提交
取消