小编gol*_*lem的帖子

What is a sibling class in Python?

Python 2 documentation says that super() function "returns a proxy object that delegates method calls to a parent or sibling class of type."

The questions:

  1. What is a sibling class in Python?
  2. How do you delegate a method call to a sibling class?

我的假设是给定类的兄弟是一个继承自同一父母的类.我起草了以下代码,以了解如何将方法调用委托给兄弟,但它不起作用.我做什么或理解错了什么?

class ClassA(object):
    def MethodA(self):
        print "MethodA of ClassA"

class ClassB(ClassA):
    def MethodB(self):
        print "MethodB of ClassB"

class ClassC(ClassA):
    def MethodA(self):
        super(ClassC, self).MethodA()

    def MethodB(self):
        super(ClassC, self).MethodB()

if __name__ == '__main__':
    ClassC().MethodA() # Works as expected

    # …
Run Code Online (Sandbox Code Playgroud)

python oop inheritance super siblings

11
推荐指数
2
解决办法
3260
查看次数

为什么建议在Python中派生Exception而不是BaseException类?

Python 2里的文件说:"我们鼓励程序员从BaseException获得从Exception类或新的例外它的一个子类,而不是".没有任何进一步解释为什么.

我很好奇为什么这样推荐?它只是保留异常层次结构,因为Python开发人员设想它?

>>> dir(BaseException) == dir(Exception)
True
Run Code Online (Sandbox Code Playgroud)

python exception

8
推荐指数
1
解决办法
1926
查看次数

X-Amz-Expires是否是AWS请求的必需标头/参数?

  1. X-Amz-Expires必需的标题/参数?官方文档不一致,在某些示例中使用它,而在其他示例中则不然.

  2. 如果不需要,签名请求的默认到期值是多少?它是否等于X-Amz-Expires参数的最大可能值,即604800(七天)

  3. 文档(参见上面的链接)X-Amz-Expires仅在查询字符串中传递签名参数的上下文中讨论参数.如果X-Amz-Expires需要参数,是否只需要在查询字符串中传递签名参数(而不是使用Authorization标头传递它们)?


更新:

AWS安全流程简介论文,第17页说

请求必须在请求中的时间戳记的15分钟内到达AWS.否则,AWS拒绝该请求.

现在我们在这里谈什么时间戳?我的猜测是X-Amz-Date.如果我是对的,那么另一个问题就出现了:

  1. 参数X-Amz-DateX-Amz-Expires参数如何相互关联?对我来说,这听起来像请求到期算法从X-Amz-Date时间戳回落到15分钟,如果X-Amz-Expire不存在的话.

amazon-s3 amazon-web-services pre-signed-url

7
推荐指数
1
解决办法
4948
查看次数

为什么必须使用`master..`预先调用MSSQL中的某些存储过程,而不能调用其他存储过程?

有问题的MS SQL Server版本是8.

在master之外的数据库的上下文中如果我从master数据库调用存储过程,对于其中一些我必须附加master..前缀(否则我得到找不到存储过程'procname'错误),对于其中一些我不这样做.例如,我可以打电话 -

EXEC sp_addlogin 'user' 'pass';
Run Code Online (Sandbox Code Playgroud)

- 它有效,但是 -

EXEC xp_cmdshell 'command'; 
Run Code Online (Sandbox Code Playgroud)

- 没有.我必须在master..它前面工作 -

EXEC master..xp_cmdshell 'command';
Run Code Online (Sandbox Code Playgroud)

我可能在这里错了,但我发现必须master..只添加那些以xp_(而不是sp_)开头的存储过程.

为什么我必须先调用其中一些,master..而其中一些可以不调用?

sql-server stored-procedures

4
推荐指数
1
解决办法
432
查看次数