相关疑难解决方法(0)

如何通过引用传递变量?

Python文档似乎不清楚参数是通过引用还是值传递,以下代码生成未更改的值'Original'

class PassByReference:
    def __init__(self):
        self.variable = 'Original'
        self.change(self.variable)
        print(self.variable)

    def change(self, var):
        var = 'Changed'
Run Code Online (Sandbox Code Playgroud)

有什么我可以通过实际参考传递变量吗?

python reference parameter-passing pass-by-reference

2480
推荐指数
22
解决办法
124万
查看次数

Python的bool是否超值?

我发送了一个bool对象的引用,并在一个方法中对其进行了修改.方法完成后执行,方法外的bool值保持不变.

这让我相信Python的bool是通过值传递的.真的吗?其他Python类型的行为方式是什么?

python boolean pass-by-value

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

如何在Python中调用工作?

对于我正在研究的项目,我正在实现一个链表数据结构,它基于一对的概念,我定义为:

class Pair:
    def __init__(self, name, prefs, score):
        self.name = name
        self.score = score
        self.preferences = prefs
        self.next_pair = 0
        self.prev_pair = 0
Run Code Online (Sandbox Code Playgroud)

where self.next_pairself.prev_pair是分别指向上一个和下一个链接的指针.

要设置链表,我有一个看起来像这样的安装功能.

def install(i, pair):
    flag = 0
    try:
        old_pair = pair_array[i]
        while old_pair.next_pair != 0:
            if old_pair == pair:
                #if pair in remainders: remainders.remove(pair)
                return 0
            if old_pair.score < pair.score:
                flag = 1
                if old_pair.prev_pair == 0: # we are at the beginning
                    old_pair.prev_pair = pair
                    pair.next_pair = old_pair
                    pair_array[i] = pair …
Run Code Online (Sandbox Code Playgroud)

python programming-languages

5
推荐指数
2
解决办法
619
查看次数

C#vs Python参数传递

如果有的话,Python的参数传递规则与C#的参数传递规则有什么主要区别?

我对Python非常熟悉,只是开始学习C#.我想知道我是否能够想到规则集是关于何时通过引用传递一个对象,或者对于C#的值是否与在Python中相同,或者如果存在一些我需要记住的关键差异.

c# python parameter-passing

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

如何在 Python 中通过 ref 传递值?

基本上我使用的是应用程序的 C++ API,但是没有关于它的 python 访问的参考。一个变量由 ref 传递,如下所示:

GetPoint ( Point  &p, Object obj )
Run Code Online (Sandbox Code Playgroud)

那么我该如何翻译成 Python 呢?是否有通过 ref 符号?

python variables pass-by-reference

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

Python中的变量复制如何正常工作?

为什么:

 >>> a = 1
 >>> b = a
 >>> a = 2
 >>> print(a)
 2
 >>> print(b)
 1
Run Code Online (Sandbox Code Playgroud)

...但:

 >>> a = [3, 2, 1]
 >>> b = a
 >>> a.sort()
 >>> print(b)
 [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

我的意思是,为什么变量真的被复制而迭代器只被引用?

python variables reference

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

python正在窃取我的对象

好吧,我只是学习Python而且我遇到了一些奇怪的行为.我想垃圾收集器对此负责,但我不确定.

抱歉,我解读了这个问题

我想重现一些我在使用没有该库的库时得到的奇怪但我失败了.

所以第二次尝试:

我正在使用Autodesk Maya的python API.它只是围绕现有C++ API的python包装.

所以这段代码:

import maya.OpenMaya as om

Q = om.MQuaternion(1,2,3,4).conjugateIt()
P = om.MQuaternion(6,6,6,6)
print(Q[0],Q[1],Q[2],Q[3])
print(type(Q))
print(type(P))
Run Code Online (Sandbox Code Playgroud)

产生这个输出:

(6.0, 6.0, 6.0, 6.0)
<class 'maya.OpenMaya.MQuaternion'>
<class 'maya.OpenMaya.MQuaternion'>
Run Code Online (Sandbox Code Playgroud)

所以两者P,Q都是类型,MQuaternionQ不保留它应该保存的数据.在这里你可以找到文档MQuaternion类.conjugateIt是共轭的,并通过引用返回.

那么现在出了什么问题?


这是一个错误的旧问题:D

在C++中,我习惯做这样的事情.

complex<float> c = complex<float>(1,2).conjInPlace()
Run Code Online (Sandbox Code Playgroud)

conjInPlace()就是结合

但如果我在python中做类似的事情,我就会陷入困境

class testClass:
        def __init__(self,_a,_b):
            self.a = _a
            self.b = _b
        def alterMe(self):
            self.b = 123

A = testClass(1,2)
A.alterMe()
print(A.a,A.b)
B = testClass(0,0)
B = testClass(3,4).alterMe()
print(B) …
Run Code Online (Sandbox Code Playgroud)

python garbage-collection

2
推荐指数
1
解决办法
302
查看次数

为什么列表在Python中以持久的方式链接?

设置变量.另一个变量设置为第一个.第一个改变了价值.第二个没有.从一开始就是编程的本质.

>>> a = 1
>>> b = a
>>> b = b - 1
>>> b
0
>>> a
1
Run Code Online (Sandbox Code Playgroud)

然后我将它扩展到Python列表.声明并附加列表.宣布另一个列表与第一个列表相同.第二个列表中的值发生变化.神秘的是,第一个列表中的值虽然没有直接作用,但也会发生变化.

>>> alist = list()
>>> blist = list()
>>> alist.append(1)
>>> alist.append(2)
>>> alist
[1, 2]
>>> blist
[]
>>> blist = alist
>>> alist.remove(1)
>>> alist
[2]
>>> blist
[2]
>>> 
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

我如何防止这种情况发生 - 我希望alistblist(不可变的,如果你愿意的话)的变化不感兴趣?

python list immutability

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

描述列表如何工作的这个属性是什么术语?

我正在寻找适当的术语来描述集合对象的这个众所周知的属性,更重要的是,当变量用于引用它们的元素时,堆栈图的变化方式如下:

>>> x = 5
>>> l = [x]
>>> x += 1
>>> l
[5]
>>> x
6
Run Code Online (Sandbox Code Playgroud)

列表对变量执行的操作的名称是什么,x以防止它被绑定到原始值的任何更改x?屏蔽?共享结构?列表绑定?使用这些条款的Google搜索没有任何回复.

这是一个更详细的例子(但遗憾的是没有定义).

列表结构共享的示例

感谢ocw.mit.edu

python terminology list definition

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

通过Python中的"引用"传递

我很抱歉再次重复同样的事情,但我已经搜索了但我还是无法解决我的问题......

如果我想更改单个"int"值,我是否必须创建列表?一团糟.它在C ...中更加舒适(如void函数(int a,b,c,*d,*e,*f))

这就是我要做的事情(我必须改变"d","e","f"):

d = 4
e = 9
f = 11
def function(a,b,c,d,e,f)
   a = something
   b = something
   c = 1
   d = 2
   e = 3
   f = 4
Run Code Online (Sandbox Code Playgroud)

话虽如此,我是否必须创建一个字典或列表来处理简单的数字?我还是个新手,但是我想知道最近解决这个问题的最佳解决方案是什么.

感谢你们.

c python reference

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