我正在努力提高我的python技能,而且我正在努力编写类,但我似乎遇到了一个非常令人困惑的错误.尽管导入了包含我的类的.py文件,但python坚持认为该类实际上并不存在.
class def:
class greeter:
def __init__(self, arg1=None):
self.text = arg1
def sayHi(self):
return self.text
Run Code Online (Sandbox Code Playgroud)
main.py:
#!/usr/bin/python
import testclass
sayinghi = greeter("hello world!")
print sayinghi.sayHi()
Run Code Online (Sandbox Code Playgroud)
现在据我所知,我已经将所有文档都记录到了't',我甚至将参数初始化为None,因为eval时间与创建时间限制等等似乎是某些人的问题,我已经确定了init是第一个定义的函数,但仍无济于事,尽管我有一个理论认为导入不能正常工作......任何帮助都会非常感激.
在类C语言中,我们习惯于使if语句类似于以下内容:
if(x == 5) {
//do something
}
else if(x == 7) {
//do something else
}
else if(x == 9) {
//do something else
} else {
//do something else
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,编译器是否看到if语句,或者它最终被解释为:
if(x == 5) {
//do something
}
else {
if(x == 7) {
//do something
}
else {
if(x == 9) {
//do something
}
else {
//do something else
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我意识到虽然这个问题在我的脑海中是有道理的,但对于普通民众的其他人来说,这听起来可能相当愚蠢.我更多地指的是AST的外观以及是否存在'else-if'语句的特殊AST情况,或者它是否会被编译为级联if/else块.
目前,我在Google云平台上托管了一个应用程序,该应用程序提供网络分析并提供会话活动(点击,下载等),并将该网络活动与网络注册联系起来.
目前,我们将所有点击和会话配置文件数据存储在MySQL中,并使用SQL查询生成聚合和每用户报告,但随着数据量的增长,我们看到查询响应真正减慢这反过来减慢了页面加载时间.
在调查我们可以解决这个问题的方法时,我们已经研究了Google云平台上可用的工具,如Dataproc和Dataflow以及NoSQL解决方案,但是,我很难理解如何将我们当前的解决方案应用于任何这些解决方案.
目前,我们对数据模式的概念如下:
User table
- id
- name
- email
Profile table (web browser/device)
- id
- user id
- user agent string
Session table
- id
- profile id
- session string
Action table
- id
- session id
- action type
- action details
- timestamp
Run Code Online (Sandbox Code Playgroud)
根据我的研究,我对什么是最佳解决方案的理解是将动作数据存储在NoT数据库解决方案中,如BigTable,它将数据提供给DataProc或DataFlow等生成报告的解决方案.但是,鉴于我们当前的架构是高度关系结构,似乎删除了转向NoSQL解决方案的选项,因为我的所有研究表明您不应该将关系数据移动到NoSQL解决方案.
我的问题是,我对如何正确应用这些工具的理解是什么?或者有更好的解决方案吗?是否有必要考虑远离MySQL?如果没有,有哪些解决方案可以让我们在后台预处理/生成报告数据?
我在玩Python套接字,并决定看是否可以实现一个非常基本的名称服务器(即,用于将域名转换为IP地址的查找表)。因此,到目前为止,我已经将服务器设置为仅转储接收到的数据。
#!/usr/bin/python
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
host = ''
port = 53
size = 512
s.bind((host, port))
while True:
data, addr = s.recvfrom(size)
print repr(data)
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码并将DNS指向127.0.0.1时,我得到类似于以下内容的信息:
'Y\x04\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03www\x06google\x03com\x00\x00\x01\x00\x01'
'J\xaa\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03www\x06google\x03com\x00\x00\x1c\x00\x01'
'Y\x04\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x03www\x06google\x03com\x00\x00\x01\x00\x01'
Run Code Online (Sandbox Code Playgroud)
我假设这与DNS问题数据包结构有关,但我不确定。
A)以上是转义字符吗?特定的文字编码?还是只是字节?
B)如何解释数据并使用它?
编辑:更改套接字以原始而不是数据报导致以下结果:
'E\x00$\x00\xe4\x96\x00\x00@\x01\x00\x00\x7f\x00\x00\x01\x7f\x00\x00\x01\x03\x03X\xb6\x00\x00\x00\x00E\x00V\x00m\x82\x00\x00\xff\x11\x00\x00\x7f\x00\x00\x01\x7f\x00\x00\x01\xf3\xe1\x005\x00B\x00\x00'
Run Code Online (Sandbox Code Playgroud) 在像RSA这样的加密方法中,我们操作一个代表我们消息的整数.我已经玩弄了将字符串转换为字节数组并一次处理一个字符,但这似乎过于缓慢而且RSA算法旨在处理整个消息.
我们如何将字符串转换为表示(整数,大整数等),我们也可以在其中应用加密算法?
我一直试图找到一种方法让LINQ能够选择给定列表的前n%.我能得到的最接近的是take语句,它与TOP PERCENT SQL语句类似,但不支持百分比.我确定我错过了一些明显的东西,但我似乎无法看到它.