标签:nta .com 计算 python语句 float 有一个 必须 oat ash
定义在某一类中(如object中的__str__,list中的__len__等),不需要直接调用该方法,Python中的某些函数或操作符会调用对应的特殊方法(如print调用__str__,len()调用__len__等),任何该类的派生类可以通过重写这些特殊方法,来自定义这些方法的功能。
只编写用到的特殊方法
有关联性的特殊方法都必须实现(如__getattr__、__setattr__、__delattr__)
构造属性的get、set、del方法
方法一:
自己编写他的get、set、del方法,并提供给外部使用,通过指定的set、get方法来进行赋值、取值
class Student(object):
def __init__(self, name, score):
self.name = name
self.__score = score
def get_score(self):
return self.__score
def set_score(self, score):
if score < 0 or score > 100:
raise ValueError(‘invalid score‘)
self.__score = score
方法二:
使用property、setter、getter方法或者装饰器,外部可直接使用属性名来赋值、取值,不必通过指定的set、get方法
通常用于控制生成一个新实例的过程,它是类级别的方法。
控制初始化一个新实例的过程。自定义“实例=类名(*args,**kw)”
自定义“del 对象”方法
自定义“print 实例” 或“str(实例)”方法
直接在交互行输入对象时使用
自定义“实例.name”方法
自定义“实例.name=val”方法
自定义“del 实例.name”方法
自定义“len(实例)”方法
自定义“实例[key]”方法
自定义“实例[key]=value”方法
自定义“del 实例[key]”方法
自定义“for tmp in 实例”方法
http://www.maiziedu.com/wiki/python/special/
自定义“实例 < 实例”方法
自定义“实例 <= 实例”方法
自定义“实例 > 实例”方法
自定义“实例 >= 实例”方法
自定义“实例 == 实例”方法
自定义“实例 != 实例”方法
自定义“sorted([实例1,实例2,...])” 方法
自定义“实例 + 实例”方法
自定义“实例 - 实例”方法
自定义“实例 * 实例”方法
自定义“实例 / 实例”方法
http://www.maiziedu.com/wiki/python/special/
自定义“int(实例)”方法
自定义“float(实例)”方法
目的是限制当前类所能拥有的属性(元组形式),如果不需要添加任意动态的属性,使用__slots__也能节省内存。
class Student(object):
__slots__ = (‘name‘, ‘gender‘, ‘score‘)
def __init__(self, name, gender, score):
self.name = name
self.gender = gender
self.score = score
# 现在,对实例进行操作:
>>> s = Student(‘Bob‘, ‘male‘, 59)
>>> s.name = ‘Tim‘ # OK
>>> s.score = 99 # OK
>>> s.grade = ‘A‘
Traceback (most recent call last):
...
AttributeError: ‘Student‘ object has no attribute ‘grade‘
自定义“实例(xx)”方法,类似于函数调用。
class Fib(object):
def __init__(self):
pass
def __call__(self,num):
if num<0:
raise ValueError(‘invalid score‘)
L=[]
L.append(0)
if num==1:
return L
L.append(1)
if num ==2:
return L
for i in range(3,num+1):
L.append(L[-1]+L[-2])
return L
f = Fib()
print f(10)
自定义“实例1 is 实例2”、“实例1 == 实例2”等方法
http://www.cnblogs.com/pengsixiong/p/5381850.html
将对象转为布尔值,自定义“if 实例:”方法
用来执行储存在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。
下面是一个简单的例子。
>>> exec ‘print "Hello World"‘
Hello World
用来计算存储在字符串中的有效Python表达式。下面是一个简单的例子。
>>> eval(‘2*3‘)
6
assert 语句用来声明某个条件是真的。例如,如果你非常确信某个你使用的列表中至少有一个元素,而你想要检验这一点,并且在它非真的时候引发一个错误,那么 assert语句是应用在这种情形下的理想语句。当assert语句失败的时候,会引发一个AssertionError。
>>> mylist = [‘item‘]
>>> assert len(mylist) >= 1
>>> mylist.pop()
‘item‘
>>> assert len(mylist) >= 1
Traceback (most recent call last):
File "", line 1, in ?
AssertionError
手动抛出异常
raise ValueError(‘invalid score‘)
可以实现设置只读属性(不设置set方法);在set、get、del属性同时进行自定义动作。
http://python.jobbole.com/80955/
http://www.cnblogs.com/ifantastic/p/3175735.html
标签:nta .com 计算 python语句 float 有一个 必须 oat ash
原文地址:http://www.cnblogs.com/yc913344706/p/7749623.html