我唯一真正了解REST的想法是通过Ruby on Rails的RESTful路由.这适合我使用Rails构建的基于CRUD的应用程序,但因此我对RESTfulness的理解有限.
假设我们有一个有限的项集合,每个项目都有一个唯一的ID,以及许多属性,例如颜色,形状和大小(某些项目可能未定义).
客户可以在一段时间内使用项目,但每个项目只能由一个客户端一次使用.对项目的访问由服务器管理.客户端可以请求从服务器临时使用某些项目.
通常,客户端只对访问具有特定属性的多个项目感兴趣,而不是访问特定项目.
当客户端请求使用多个项目时,服务器会使用与请求相对应的ID列表进行响应,或者使用响应来响应所请求的项目当前不可用或不存在.
客户可以提出以下类型的请求:
上面的玩具示例就像我最近必须处理的资源分配问题.我应该如何RESTful地思考它?
为方便起见,我想socket创建一个ICMP套接字子类:
class ICMPSocket(socket.socket):
def __init__(self):
socket.socket.__init__(
self,
socket.AF_INET,
socket.SOCK_RAW,
socket.getprotobyname("icmp"))
def sendto(self, data, host):
socket.socket.sendto(self, data, (host, 1))
Run Code Online (Sandbox Code Playgroud)
但是,我无法覆盖socket.sendto:
>>> s = icmp.ICMPSocket()
>>> s.sendto
<built-in method sendto of _socket.socket object at 0x100587f00>
Run Code Online (Sandbox Code Playgroud)
这是因为它sendto是一种"内置方法".根据数据模型引用,这"实际上是内置函数的不同伪装,这次包含作为隐式额外参数传递给C函数的对象."
我的问题:无论如何都要在子类化时覆盖内置方法?
[编辑]第二个问题:如果没有,为什么不呢?
我有一个java项目,我使用Eclipse ide.我已经重命名了我的项目.这更新了我的.project文件,我将它推送到GitHub.但是GitHub仍然显示旧的项目名称.
有没有办法在GitHub上更改项目名称?我在Windows上使用GitBash与Git进行交互
给定方矩阵M,如何找到对角线上元素的总和?必须有一个比这更简单的方法:
sum(sum(diag(diag(M), 0)))
我希望能够以最惯用的方式编写一个函数,True如果一个对象是真实的,False则返回该函数.例如:
is_truthy(True) # True
is_truthy(False) # False
is_truthy(123) # True
is_truthy(0) # False
is_truthy("some string") # True
is_truthy("") # False
Run Code Online (Sandbox Code Playgroud)
我想出的最好的是:
def is_truthy(obj):
return not not obj
Run Code Online (Sandbox Code Playgroud)
谁能做得更好?