我遵循了GitHub教程中的所有内容:https://help.github.com/articles/generating-ssh-keys
我在我的存储库目录中完成了所有命令.我成功完成了教程的结束并收到消息:"您好用户名!您已成功通过身份验证,但GitHub不提供shell访问权限."
但是,当我尝试执行诸如推送仍然请求我的用户名和密码之类的事情时.
首先我创造了 __init__.py
from flask import Flask
app = Flask(__name__)
Run Code Online (Sandbox Code Playgroud)
然后在一个单独的文件中,在同一目录中 run.py
from app import app
app.run(
debug = True
)
Run Code Online (Sandbox Code Playgroud)
当我尝试运行时run.py,我收到错误
Traceback (most recent call last):
File "run.py", line 1, in <module>
from app import app
ImportError: No module named app
Run Code Online (Sandbox Code Playgroud) return redirect(url_for('index', var=var))
return render_template('index.html', var=var)
Run Code Online (Sandbox Code Playgroud)
这两条线基本上是一回事吗?
这两个功能有什么区别?
我阅读/sf/answers/1380476751/,似乎在CPython中,变量只是与引用相关联的名称.
声明x = 5有几件事情:
- 创建一个值为5的int对象(如果已存在,则找到该对象)
- 创建名称x(或与最后一个标记为'x'的对象取消关联)
- 对新(或找到)的int对象的引用计数增加1
- 名称x与创建(或找到)值为"5"的对象相关联.
但是,我仍然不清楚内部如何实现变量.
即:
- 创建名称x(或与最后一个标记为'x'的对象取消关联);
那个名字也不会占用内存空间吗?sys.sizeof(x)等于sys.sizeof(5),我得到的sys.sizeof(x)只能返回相关引用的大小,但那么名称的大小是x多少?
- 名称x与创建(或找到)值为'5'的对象相关联
这是如何在内部实施的?我认为在高级别它可以用a完成dict,其中键是变量名(str?),值是与之关联的引用.
例如,如果我从以下位置更改:
message Request {
int foo = 1;
}
Run Code Online (Sandbox Code Playgroud)
到
message Request {
int bar = 1;
int foo = 2;
}
Run Code Online (Sandbox Code Playgroud)
foo从 1 更改为 2安全吗?文档说不要:These numbers are used to identify your fields in the message binary format, and should not be changed once your message type is in use.,但我想知道为什么。
我的 PlantUML 代码如下所示
package "parent" {
package "child1" {
}
package "child2" {
}
package "child3" {
}
//and so on...
}
Run Code Online (Sandbox Code Playgroud)
渲染图并排包含所有子包,因此图太宽。有没有办法强制所有包child2低于(换行符)之前的包?
我做了两次测试,第一次开始 Strings
String str1 = "old";
String str2 = str1;
str1 = "new";
System.out.println(str1); //new
System.out.println(str2); //old
Run Code Online (Sandbox Code Playgroud)
上面的例子表明了这一点 str2 = str1, by value
现在我做类似的操作,但这一次 Lists
List<Integer> list1 = new ArrayList<Integer>();
List<Integer> list2 = list1;
list1.add(1);
System.out.println(list1.size()); //1
System.out.println(list2.size()); //1
Run Code Online (Sandbox Code Playgroud)
这个例子表明了 list2 = list1, by reference
我很困惑,which Java variables/objects被过去了value,哪些是通过的reference?
假设我有一个整数数组,"orig"
我想浅浅地复制它,所以我不能这样做:
int[] shallow = orig;
Run Code Online (Sandbox Code Playgroud)
我的教授说,对于原语,浅和深拷贝基本相同,因为我们必须复制数组的每个索引.但是将整个数组设置为另一个数组也是一样的,对吧?
我对对象数组有类似的问题
这是我的意识形态
Book[] objArr2 = objArr1;
Run Code Online (Sandbox Code Playgroud)
但有人告诉我,我必须复制每个数组索引,比如
//for loop
objArr2[i] = objArr1[i];
Run Code Online (Sandbox Code Playgroud)
对于浅层复制,将数组等同于另一个数组和单独复制每个数组索引之间是否存在任何差异?(我明白,深意味着你必须创建全新的对象)
出于测试目的,我在执行代码之前清除(删除)每个表。
for table in reversed(db.metadata.sorted_tables):
engine.execute(table.delete())
do_stuff()
Run Code Online (Sandbox Code Playgroud)
但是,新数据的id值从前一个id停止的地方开始:
第一次迭代:
id | value
-----+---------
1 | hi
2 | there
Run Code Online (Sandbox Code Playgroud)
第二次迭代(删除表,插入新数据):
id | value
-----+---------
3 | good
4 | day
Run Code Online (Sandbox Code Playgroud)
id删除表时有什么方法可以重置计数吗?
编辑:似乎我把它弄坏了,桌子现在根本没有清除
config.py
SQLALCHEMY_DATABASE_URI = 'postgresql://postgres:myPassword@localhost/myDatabase'
app.py
app = Flask(__name__)
app.config.from_pyfile('config.py')
db = SQLAlchemy(app)
models.py
from app import app, db
def clear():
for table in reversed(db.metadata.sorted_tables):
db.engine.execute('TRUNCATE TABLE ' + table.name + ' RESTART IDENTITY CASCADE')
Run Code Online (Sandbox Code Playgroud)
该表仍被添加到(使用db.session.add_all()和db.session.commit())。然而,clear()什么都不做。当我以postgres用户身份登录 …
>>> 'hi'.split()[0] is 'hi'
True
>>> 'hi there'.split()[0] is 'hi'
False
>>> 'hi there again'.split()[0] is 'hi'
False
Run Code Online (Sandbox Code Playgroud)
我的假设:
第一行只有一个被拆分的元素,而另外两行有多个元素。我相信,虽然像 Python 原语这样str的函数是按值存储在内存中的,但函数之间会有单独的分配,以简化内存管理。我认为split()是这些函数之一,它通常分配新的字符串。但它也处理不需要任何拆分的输入的边缘情况(例如'hi'),其中仅返回原始字符串引用。我的解释正确吗?