V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wwqgtxx  ›  全部回复第 41 页 / 共 193 页
回复总数  3842
1 ... 37  38  39  40  41  42  43  44  45  46 ... 193  
你要是说 c 历史包袱重,c++学的得要命呀
2018-08-31 17:00:03 +08:00
回复了 inee 创建的主题 iPhone 大家希望 a12 的性能有多强
我就问这个和 a12 有啥关系
2018-08-30 06:36:16 +08:00
回复了 Alerta 创建的主题 Python Python 中的 List 是封装了顺序存储结构还是链表存储结构?
@lance6716 就是说他的容量递增永远是按照这个序列来
0, 4, 8, 16, 25, 35, 46, 58, 72, 88,
至于这个序列就是从 (newsize >> 3) + (newsize < 9 ? 3 : 6) 算出来的呀
2018-08-29 23:35:12 +08:00
回复了 Alerta 创建的主题 Python Python 中的 List 是封装了顺序存储结构还是链表存储结构?
至于 append 怎么实现的,基本上就是和 c++的 vector 一样,开个大数组,不够用就再扩容呗
https://github.com/python/cpython/blob/3.7/Objects/listobject.c#L301
扩容因子在这里定义的
https://github.com/python/cpython/blob/3.7/Objects/listobject.c#L59

@n2ex2
2018-08-29 23:31:01 +08:00
回复了 Alerta 创建的主题 Python Python 中的 List 是封装了顺序存储结构还是链表存储结构?
@n2ex2 自己看看 python list 的实现,还真的不是链表
https://github.com/python/cpython/blob/3.7/Include/listobject.h#L23
2018-08-29 16:55:27 +08:00
回复了 ShadowWhisper 创建的主题 程序员 iPhone 热点断开后,必须重启热点,电脑才能搜索到信号
只要让你的 iphone 亮屏,停在个人热点界面就能搜索到了,并不用重启热点
@skinny 基本上除了我在#16 提供的使用 exec 的方法以外,想要动态重构一个模块还真的很难。你提供的方法只要模块能正常的被 import 就能把其他模块比如 sys 注入,但是如果在 import 的时候就直接报错 ImportError 之类的就无能为力了。而我提供的方法其实是完全自己手动模拟的 import 的过程,但是无法解决出现一个插件内部 import 另一个插件的情况(当然也可以在 read 之后把文件内部的 import 再 hook 一下,不过这样就非常的臃肿了)。
看楼主的描述,其实是那些个插件本身写的就有语法问题
至于楼主说的“插件居然不能继承入口文件里面引入的库文件”,其实这是个很合理的行为,每个.py 文件都有一个自己独立的作用域,换句话说,除非手动 import 否则各个模块之间应该互相不干扰,贝莱就没有所谓的入口文件的概念,自然也就不存在继承的问题
应该是 6#刚才打错了
@skinny 说实话,我觉得你的实现方法并不能解决题主在 3#描述的问题,你的方案只是解决了批量导入模块的问题,却没办法在导入模块前动态给模块的开头加上 import
但是上述方法在出现 plugin 之间的相互引用的时候还是容易导致错误,这个需要用 import_hook 进一步优化了
还有个比较暴力的办法
import sys,imp

f = open("plugin/xxx.py",'r')
code = "import A \n import B \n" + f.read()
f.close()
module = imp.new_module('plugin.xxx')
exec code in mymodule.__dict__
sys.module['plugin.xxx'] = module

如果是 python3 的话应该这样
from types import ModuleType
import sys

f = open("plugin/xxx.py",'r')
code = "import A \n import B \n" + f.read()
f.close()
mod = ModuleType('plugin.xxx', '')
exec(code, mod.__dict__)
sys.module['plugin.xxx'] = module
2018-08-28 16:34:43 +08:00
回复了 codechaser 创建的主题 Android Android 不支持 lambda 吗?
@PhxNirvana 试了一下,在 AS3.1.2 上,List.sort()会提示警告的
Call requires API level 24 (current min is 15): java.util.List#sort less... (Ctrl+F1)
This check scans through all the Android API calls in the application and warns about any calls that are not available on all versions targeted by this application (according to its minimum SDK attribute in the manifest). If you really want to use this API and don't need to support older devices just set the minSdkVersion in your build.gradle or AndroidManifest.xml files. If your code is deliberately accessing newer APIs, and you have ensured (e.g. with conditional execution) that this code will only ever be called on a supported platform, then you can annotate your class or method with the @TargetApi annotation specifying the local minimum SDK to apply, such as @TargetApi(11), such that this check considers 11 rather than your manifest file's minimum SDK as the required API level. If you are deliberately setting android: attributes in style definitions, make sure you place this in a values-vNN folder in order to avoid running into runtime conflicts on certain devices where manufacturers have added custom attributes whose ids conflict with the new ones on later platforms. Similarly, you can use tools:targetApi="11" in an XML file to indicate that the element will only be inflated in an adequate context.
有个不是很优雅的实现方法,假设你的插件在 /plugin 目录下,你在程序启动时创建(如果已经存在则删除后重建)一个 /_plugin 目录,然后把源 plugin 目录下的文件一个个的拷贝过去,在拷贝的时候,只要是.py 文件就在开头追加一段你需要的"import xxx;import xxx",最后再用__import__("._plugin/xxxxx")
2018-08-28 16:20:57 +08:00
回复了 codechaser 创建的主题 Android Android 不支持 lambda 吗?
@PhxNirvana 一般来说只要你的 android studio 版本足够新,发现了调用当前 Min Sdk Version 不支持的 api 都会有提示呀,如果你不看选择继续使用,那就没办法了
2018-08-28 13:18:25 +08:00
回复了 codechaser 创建的主题 Android Android 不支持 lambda 吗?
@PhxNirvana 你的知识库该更新了,根据 android 官方文档,lambda 特性在任意 android sdk 目标版本上均可用
https://developer.android.com/studio/write/java8-support?hl=zh-cn
2018-08-28 11:17:47 +08:00
回复了 bxqlsyxn 创建的主题 Python 新人学 Python ,编了一个小函数,出了点问题
@dumungweii 如果看系统库的话,python 官方还是很推荐用 try-except-else 的写法的,除非你在 except 中直接就 return 了,否则后面的代码在前面 open 出错了之后执行就会找不到 contents 这个变量
说到底,99%的消费者对这些功能不感冒,硬件厂商当然懒得推动。硬件厂家不动,ms 怎么动
2018-08-25 14:40:11 +08:00
回复了 frmongo 创建的主题 Python Python 的正则表达式的两种写法的区别是什么?
@glacer
@wocanmei
其实 python3 的 re.py 中_compile()函数内部是有个_cache 的
https://github.com/python/cpython/blob/3.7/Lib/re.py#L268
所以并不会每次调用都会编译一遍
2018-08-25 11:45:48 +08:00
回复了 frmongo 创建的主题 Python Python 的正则表达式的两种写法的区别是什么?
def match(pattern, string, flags=0):
"""Try to apply the pattern at the start of the string, returning
a Match object, or None if no match was found."""
return _compile(pattern, flags).match(string)

这是标准库的定义,所以说你的两种写法本质上是一样的
1 ... 37  38  39  40  41  42  43  44  45  46 ... 193  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1079 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 43ms · UTC 19:11 · PVG 03:11 · LAX 11:11 · JFK 14:11
Developed with CodeLauncher
♥ Do have faith in what you're doing.