小编Syn*_*ate的帖子

Python列表和for-access访问(在内置列表中查找/替换)

我原本以为Python是一种纯粹的传递引用语言.

来自C/C++我不禁想到内存管理,而且很难把它从我的头脑中解脱出来.因此,我试图从Java的角度来考虑它,并将所有内容都考虑在内,而不是原始内容作为参考传递.

问题:我有一个列表,其中包含一组用户定义类的实例.

如果我使用for-each语法,即:

for member in my_list:
    print(member.str);
Run Code Online (Sandbox Code Playgroud)

是否member相当于对象的实际引用?

它是否相当于:

i = 0
while i < len(my_list):
    print(my_list[i])
    i += 1
Run Code Online (Sandbox Code Playgroud)

我认为不是,因为当我想要替换时,它不起作用,也就是说,这不起作用:

for member in my_list:
    if member == some_other_obj:
        member = some_other_obj
Run Code Online (Sandbox Code Playgroud)

在列表中进行简单的查找和替换.可以在for-each循环中完成,如果是,怎么做?另外,我是否只需要使用随机访问语法(方括号),或者什么都不会工作,我需要删除该条目,并插入一个新条目?即:

i = 0
for member in my_list:
   if member == some_other_obj:
      my_list.remove(i)
      my_list.insert(i, member)
   i += 1
Run Code Online (Sandbox Code Playgroud)

python foreach replace reference list

26
推荐指数
3
解决办法
11万
查看次数

C++结构 - 毫无意义?

可能重复:
C++中struct和class之间有什么区别

我只想弄清楚在C++中使用'C structs'是否基本无用.你通过使用它们获得了什么(反对简单地创建另一个类)?

在C语言中,结构点是显而易见的,只是分组数据的连续分配和访问所述数据的好方法,在C++中我觉得这个角色变得更加模糊.

看到你可以拥有作为结构,实例变量和可见性标签成员的函数,我在C++中的结构和类之间看到的唯一真正的区别是结构成员默认为public而类成员默认为private.我看到它们的方式,实际上它们都可以用相同的底层系统实现.

所以我在这里遗漏了一些关于C++结构的目的吗?或者他们有没有失去他们的目的,因为我觉得他们有C++?

c c++

6
推荐指数
1
解决办法
976
查看次数

Python实践强制执行字节码编译?(pyc文件)

我正在阅读Python解释器,因为我无法理解为什么有些东西有python编译对象(.pyc),但其他人没有.

我得到了我的问题的答案,但现在我很困惑.好吧,解释器将一个脚本编译成一个模块......如果我正确地理解了这一点,它就像C中的一个对象一样(C程序员,这里是Python新手) - 或者我想更像是一个.class在Java中,因为它是编译的字节码,而不是本机指令......无论如何,当你导入一个脚本时,或者如果你明确地称它为编译它(由于某种原因不太有利),它会这样做.

那么根据这种理解,编译后的字节码之间是否存在运行时差异?假设只有一个解释器(一个字节码解释器),它意味着如果模块尚未编译,它必须在进行解释之前进行语法/ lexing /解析(编译).这不会导致更高的执行时间吗?

因此,如果你认为上述内容是真的,那么显然最好将模块编译成.pyc,而不是作为标准的.py脚本运行.

这是否意味着最好尽可能在主要运行中执行最少的执行?

我认为,如果你的入口点有任何硬核逻辑(即我的有几个树遍历,以及其他重要的比较),那么这个入口点本身是否应该被包装以便它被编译?

也就是说,而不是:

# file.py:
def main():
    <stuff goes here - setup, whatever shared resources different modules need, etc.>

main()
Run Code Online (Sandbox Code Playgroud)

这样做会更好吗:

# wrapper.py:
from file.py import *
main()
Run Code Online (Sandbox Code Playgroud)

希望我能解释一下我的要求.我很可能错误地理解了如何在Python中使用解释器/编译器,这个问题甚至都不合理 - 我对Python很新.

TIA

python interpreter bytecode structure python-3.x

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

标签 统计

python ×2

bytecode ×1

c ×1

c++ ×1

foreach ×1

interpreter ×1

list ×1

python-3.x ×1

reference ×1

replace ×1

structure ×1