鱼C论坛

 找回密码
 立即注册
查看: 1640|回复: 10

[已解决]哪些数据类型是可以在函数内修改的呢

[复制链接]
发表于 2020-5-13 11:48:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

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

那么总的来讲

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

非常感谢
最佳答案
2020-5-13 14:49:07
5695585 发表于 2020-5-13 14:44
我的意思就是哪些类型的数据,可以在函数里面直接改它的值

可哈希的数据类型  字符串  元组  objects   这些 都不能被修改
不可哈希的数据类型  字典  列表  set  这些都可以被改变
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-13 11:51:12 | 显示全部楼层
  1. from ctypes import *

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

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

  7.     def __del__(self):
  8.         print "__del__", self.obj
  9.         library.release_service(self.obj);
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-13 11:51:52 | 显示全部楼层
列表+字典+其他可变数据结构,这些是不用传参就能修改的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-13 11:52:21 | 显示全部楼层
https://www.it1352.com/492092.html
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-13 11:52:26 | 显示全部楼层
列表 字典 都可以吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-13 11:59:00 | 显示全部楼层
  1. Python怎么在函数内部像调用一个指针一样,去修改指针指向的地址的值呢
复制代码
这点我可以很明确的告诉你:没办法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-13 12:59:31 | 显示全部楼层
可变的数据结构可以在内部修改它的值,例如列表和字典。

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

Python 没办法在函数内部修改变量指向的值。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-13 13:59:47 | 显示全部楼层
你想改啥,请举例说明,拿其他语言举例也可
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-13 14:44:33 | 显示全部楼层
wp231957 发表于 2020-5-13 13:59
你想改啥,请举例说明,拿其他语言举例也可

  1. int modify(int * p)
  2. {
  3.         *p = 1;
  4.         return 0;
  5. }

  6. int main()
  7. {
  8.         int a;
  9.         a=10;
  10.         printf("%d\n",a);
  11.         int * p;
  12.         p = &a;
  13.         modify(p);
  14.         printf("%d\n",a);
  15.    return 0;
  16. }
复制代码


我的意思就是哪些类型的数据,可以在函数里面直接改它的值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-13 14:49:07 | 显示全部楼层    本楼为最佳答案   
5695585 发表于 2020-5-13 14:44
我的意思就是哪些类型的数据,可以在函数里面直接改它的值

可哈希的数据类型  字符串  元组  objects   这些 都不能被修改
不可哈希的数据类型  字典  列表  set  这些都可以被改变
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-19 06:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表