我理解Everything背后的主要理论是一个对象,但我真的不明白它是如何在幕后实现的.
所以:foo(4)是一样的foo.__call__(4).但是阻止我做什么foo.__call__.__call__(4)呢?
foo是一个函数,并且foo.__call__...是函数的所有方法包装器,但是当我调用一个函数时,甚至调用了哪些函数?
我的函数foo有很多属性,而且每个对象都存储了很多属性,那么它如何不占用无限的内存呢?
sys.getsizeof('a')产生22,对于一个角色看起来相当大,但是因为它引用了71个属性而非常小.
我想我要问的是,如果我想实现一个天真的python版本(我不是,但它似乎是最好的问题)我将如何实现它?
编辑1
我对builtins有点了解并意识到它们引用了相同的属性(id('a'.upper) == id('b'.upper)).这让我问它是如何知道它正在访问的对象?
编辑2正如pts指出的那样 'a'.upper is not 'b'.upper,以便清除它.
我看过IronPython的来源,因为我认为它会帮助我理解,但它让我更加困惑.
我正在尝试创建一个计算机预订系统,用户选择一台计算机并选择他将使用这台PC的时间.在那个时候其他人不能保留这台电脑,我需要找到一个解决方案,如何在时间到期后自动删除包含保留pc的所有行.谢谢你的建议.
我有一个C#脚本,需要在列表中添加或删除项目.我认为使用+ =和 - =运算符会更好.
在C#中,操作符由以下内容完成:
public Foo operator +(Foo A, Foo B){
//Some adding code;
return C;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试时,我只收到语法错误:
public SpriteValues operator +=(SpriteValues A){
//Add A to this
return this;
}
Run Code Online (Sandbox Code Playgroud)
我知道在python中它将使用:
def __iadd__(self, A):
#Add A to this
return self
Run Code Online (Sandbox Code Playgroud)
那么我如何在C#中做到这一点?
我目前正在构建一个Web /桌面应用程序.用户可以在线创建帐户并在线或通过桌面客户端登录.客户端将使用Python构建并导出到exe.
我希望在密码在线发送之前对其进行加密,因为该站点没有https连接.
这样做的最佳方法是什么,所以散列密码在python和php中是一样的?或者他们是更好的方式还是我应该投资https?
我尝试过使用简单的散列,但php md5("Hello")会返回与python不同的东西hashlib.md5("Hello").hexdigest()
php python passwords password-protection password-encryption