5695585 发表于 2020-5-13 11:48:46

哪些数据类型是可以在函数内修改的呢

Python怎么在函数内部像调用一个指针一样,去修改指针指向的地址的值呢

列表我感觉是指针like的类型,有点像数组,所以是可以直接调用列表的名称作为实参去修改列表的

那么总的来讲

哪些是可以在函数内部修改值,哪些是不能在函数内部修改值的呢

非常感谢

xiaosi4081 发表于 2020-5-13 11:51:12

from ctypes import *

library = cdll.LoadLibrary('distribution/library/libhelpers.dylib')

class Service(object):
    def __init__(self, port):
      self.obj = library.create_service(port)
      print "__init__ address: ", self.obj

    def __del__(self):
      print "__del__", self.obj
      library.release_service(self.obj);

qiuyouzhi 发表于 2020-5-13 11:51:52

列表+字典+其他可变数据结构,这些是不用传参就能修改的

xiaosi4081 发表于 2020-5-13 11:52:21

https://www.it1352.com/492092.html

Twilight6 发表于 2020-5-13 11:52:26

列表 字典 都可以吧

永恒的蓝色梦想 发表于 2020-5-13 11:59:00

Python怎么在函数内部像调用一个指针一样,去修改指针指向的地址的值呢这点我可以很明确的告诉你:没办法

zltzlt 发表于 2020-5-13 12:59:31

可变的数据结构可以在内部修改它的值,例如列表和字典。

而不可变的数据结构不能修改它的值,例如字符串和元组。

Python 没办法在函数内部修改变量指向的值。

wp231957 发表于 2020-5-13 13:59:47

你想改啥,请举例说明,拿其他语言举例也可

5695585 发表于 2020-5-13 14:44:33

wp231957 发表于 2020-5-13 13:59
你想改啥,请举例说明,拿其他语言举例也可

int modify(int * p)
{
        *p = 1;
        return 0;
}

int main()
{
        int a;
        a=10;
        printf("%d\n",a);
        int * p;
        p = &a;
        modify(p);
        printf("%d\n",a);
   return 0;
}

我的意思就是哪些类型的数据,可以在函数里面直接改它的值

wp231957 发表于 2020-5-13 14:49:07

5695585 发表于 2020-5-13 14:44
我的意思就是哪些类型的数据,可以在函数里面直接改它的值

可哈希的数据类型字符串元组objects   这些 都不能被修改
不可哈希的数据类型字典列表set这些都可以被改变

wp231957 发表于 2020-5-13 14:51:25

5695585 发表于 2020-5-13 14:44
我的意思就是哪些类型的数据,可以在函数里面直接改它的值

def f(lst):
    lst.append("1")

la=[]
f(la)   
print(la)
f(la)   
print(la)
f(la)   
print(la)
页: [1]
查看完整版本: 哪些数据类型是可以在函数内修改的呢