小编Bon*_*nzo的帖子

一切都是一个对象甚至工作如何?

我理解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来源,因为我认为它会帮助我理解,但它让我更加困惑.

python oop

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

指定时间后删除Mysql行

我正在尝试创建一个计算机预订系统,用户选择一台计算机并选择他将使用这台PC的时间.在那个时候其他人不能保留这台电脑,我需要找到一个解决方案,如何在时间到期后自动删除包含保留pc的所有行.谢谢你的建议.

php mysql

3
推荐指数
1
解决办法
3273
查看次数

C#class + =运算符重载

我有一个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#中做到这一点?

c# oop operator-overloading

3
推荐指数
1
解决办法
814
查看次数

Python和PHP的密码保护

我目前正在构建一个Web /桌面应用程序.用户可以在线创建帐户并在线或通过桌面客户端登录.客户端将使用Python构建并导出到exe.

我希望在密码在线发送之前对其进行加密,因为该站点没有https连接.

这样做的最佳方法是什么,所以散列密码在python和php中是一样的?或者他们是更好的方式还是我应该投资https?

我尝试过使用简单的散列,但php md5("Hello")会返回与python不同的东西hashlib.md5("Hello").hexdigest()

php python passwords password-protection password-encryption

0
推荐指数
1
解决办法
196
查看次数