感谢fuglede提出这个我注意:
这是一个COM错误吗?
我打开Excel工作簿A,然后打开工作簿B(两个都在单元格A1中有一些标识文本).
然后我再次尝试打开工作簿A并将该引用保存在一个新变量中a2.但a2现在指向工作簿B!
使用win32com在Python中重现了这种完全相同的行为.所以这不是一个特别的VBA问题,而是更普遍的COM问题.(也就是说,也可能是在C#等,但尚未确认.)
到底是怎么回事?
VBA代码:( Python win32com代码类似.)
'Open a couple of workbooks
Dim a As Workbook, b As Workbook, a2 As Workbook
Debug.Print "Set a = a.xlsx..."
Set a = Application.Workbooks.Open("H:\a.xlsx")
Debug.Print "a: " & a.Name
Debug.Print "Set b = b.xlsx..."
Set b = Application.Workbooks.Open("H:\b.xlsx")
Debug.Print "b: " & b.Name
Debug.Print "a: " & a.Name
'Attempt to re-open workbook a.xlsx and keep reference in a new variable
Debug.Print "Set a2 = a.xlsx..." …Run Code Online (Sandbox Code Playgroud) 我理解指针和引用的整体含义(或者至少我认为我这样做),我也理解当我使用new时我会动态分配内存.
我的问题如下:
如果我要使用cout << &p,它将显示"虚拟内存位置" p.有没有办法可以操纵这个"虚拟内存位置"?
例如,以下代码显示了ints 的数组.
如果我想显示值,p[1]并且我知道"虚拟内存位置" p,我可以以某种方式做" &p + 1"并获得p[1]with 的值,cout << *p现在指向数组中的第二个元素吗?
int *p;
p = new int[3];
p[0] = 13;
p[1] = 54;
p[2] = 42;
Run Code Online (Sandbox Code Playgroud) 我的网站遭受Operation Aborted错误.我觉得奇怪的是,在我的情况下,错误有时只会发生.该网站已经运行了三个月,然后今天它开始发生但不是每次都发生.
发生的页面相当大,有很多第三方控件.我想要的是一个可以确定故障发生位置的工具.似乎我能做的最好就是找到操作中止后发生的第一个javascript错误; 但是,这没有多大帮助.这个失败是因为dom的元素不可用,因为IE停止解析HTML,所以我期望这个元素.
任何人都有任何想法或技巧来缩小这个范围?
我理解解决问题的其他方法; 但是,我正在寻找的是一种识别导致问题的脚本的方法.
切换到IE8后,我能够确定原因是AjaxControl Toolkit的模态弹出对话框.没有具体的方法来确定这是令人失望的,但调试器让我看到它失败的地方非常一致.由于控件中没有办法告诉它移动它的初始化,我禁用它,并让脚本在我的文档加载事件处理程序中创建客户端控件.
这个问题不是控件的错,它是因为弹出窗口的内容实际上是第二种形式而发生的.坦率地说,我很惊讶它曾经工作过.
是否可以检索方法/构造函数的调用者实例?
这个问题已经发布,但每次答案都是关于调用者类(使用堆栈跟踪)而不是调用者实例.如果存在解决方案,那么构建对象图(具有公共超类型)并使用默认构造函数处理父子导航可能非常方便.
public class TestCallStack {
public static class BaseClass {
BaseClass owner;
// //ok, this is the correct way to do it
// public BaseClass(BaseClass owner) {
// this.owner = owner;
// }
public BaseClass() {
//this.owner = ???????;
}
}
public static class Parent extends BaseClass {
Child child = new Child();
}
public static class Child extends BaseClass {
}
public static void main(String[] args) {
Parent parent = new Parent();
System.out.println(parent.child.owner==parent); // must be true
} …Run Code Online (Sandbox Code Playgroud) 我正在使用python 2.7 win32com模块从Python加载MS Excel工作表:
book = xlApp.Workbooks.Open("myFile.xls")
sheet = book.Sheets(1)
Run Code Online (Sandbox Code Playgroud)
Range,Worksheet等的许多方法和属性都使用XlDirection,XlFillWith等枚举.这些定义了常量,例如xlDown,xlUp,xlFillWithContents等.这些常量可以从win32com获得,以便我可以做,例如:
column = outputsSheet.Range("I5:I150")
lastRow = column.End(xlInterop.xlDown)
print "Last row:", lastRow.Row
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为没有定义xlInterop,有没有办法使用win32com访问它?通过反复试验发现xlDown等常量的值是不太实际的.
我正在尝试使用现有的virtualenv设置运行PyCharm.我已将PyCharm项目指向现有virtualenv~/.virtualenvs/myproj /中的python解释器,如下所示
文件 - >默认设置 - >默认项目 - > Python解释器
该项目运行良好,但编辑器仍然在作为virtualenv的一部分安装的软件包上发光.
知道我错过了什么吗?
我有这个标记,事先不知道ID:
#product-20625055 { background-color: #FC0; }
#product-66980342 { background-color: #0CF; }
#product-54722210 { background-color: #F0C; }Run Code Online (Sandbox Code Playgroud)
<div class="product" id="product-20625055">Product 1</div>
<div class="product" id="product-66980342">Product 2</div>
<div class="product" id="product-54722210">Product 3</div>Run Code Online (Sandbox Code Playgroud)
我需要更改所有div的背景颜色.这是我能想到的最具体的选择器,但它不起作用:
div.product[id^="product-"] { background-color: transparent; }
Run Code Online (Sandbox Code Playgroud)
这可以在没有硬编码ID,使用!important和更改HTML标记的情况下完成吗?
我正在使用Phonegap/Cordova编写移动应用程序.移动应用程序需要来自我编写的服务器端应用程序的信息.我创建了一个API来获取这些信息.
API所做的第一件事就是验证移动应用程序是我编写的应用程序.它使用公共API密钥和秘密API密钥执行此操作.(它们用于生成授权标头).
授权标头在移动应用程序和服务器端应用程序上生成,服务器将针对彼此检查它们是否存在差异.
它是这样的:
var SIGNATURE = SHA512( MY_APP + MY_PUBLIC_API_KEY + TIMESTAMP + NONCE + MY_SECRET_API_KEY );
var auth = "path=MY_APP,key=MY_PUBLIC_API_KEY,time=TIMESTAMP,nonce=NONCE,signature=SIGNATURE"
$.ajax( {
type = "POST",
url: url,
headers : {
"Authorization" : auth
}
} );
Run Code Online (Sandbox Code Playgroud)
// there is some regex to "decode" the auth header
// now, recreate the signature from the public variables in the auth header and check for a match (note: this includes fetching the secret from an xml file as it …Run Code Online (Sandbox Code Playgroud) 我可以id()在实践中依赖对象及其独特性多少?例如:
id(a) == id(b)意味着a is b反之亦然?对面怎么样?id以后要使用的某个地方(例如进入某个注册表而不是对象本身)有多安全?(作为对Canonicals for Python的响应而写成的规范:具有相同id()的对象是相同的对象,`is`运算符,未绑定的方法对象)
我开始看,pipenv好像还不错。我唯一担心的是,我的大多数项目都涉及numpy,scipy以及其他一些不那么小的库。
目前的方式来管理我的项目:
我有pyenv和pyenv-virtualenv安装。我有几个(目前4)具体的virtualenvs每一个迎合型项目。项目本身已经.pyenv-version设置,我pyenv启用了自动加载 virtualenv 功能。如果我需要共享一个项目,我产生一个requirements.txt与pip freeze -l从virtualenv。
所以在我的当前设置,我X的项目数和Y, Y << X数量virtualenvs,所有金额为几GB的硬盘空间。请注意,由于像numpy每个库这样的大型库virtualenvs都非常大,大约 700-900 MB。
我的问题:
据我了解,pipenv默认情况下会为我virtualenv的所有项目创建一个,因此我占用的硬盘空间virtualenvs会大大增加。我感兴趣的是:
pipenv跨多个使用完全相同依赖项的项目共享环境?即pipenv加载相同的多个配置virtualenv?pipenv从virtualenv我设置的配置文件中生成配置文件pyenv?即我不会pipenv用来实际运行我的项目,我不会创建任何virtualenvswith pipenv,但我会创建pipenv用于共享项目的配置文件(在这种情况下,可能也与 a …python ×3
excel ×2
javascript ×2
virtualenv ×2
c++ ×1
callstack ×1
com ×1
css ×1
css3 ×1
html ×1
identity ×1
inheritance ×1
java ×1
php ×1
pipenv ×1
pointers ×1
pycharm ×1
pyenv ×1
python-2.7 ×1
rest ×1
stack-trace ×1
vba ×1
win32com ×1