我有一个目录结构
??? simulate.py
??? src
? ??? networkAlgorithm.py
? ??? ...
Run Code Online (Sandbox Code Playgroud)
我可以访问网络模块sys.path.insert().
import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *
Run Code Online (Sandbox Code Playgroud)
但是,pycharm抱怨它无法访问模块.我如何教pycham来解决参考?

我在python 3中有以下代码:
class Position:
def __init__(self, x: int, y: int):
self.x = x
self.y = y
def __add__(self, other: Position) -> Position:
return Position(self.x + other.x, self.y + other.y)
Run Code Online (Sandbox Code Playgroud)
但是我的编辑器(PyCharm)说无法解析引用位置(在_add__方法中).我该如何指定我希望返回类型是类型__add__?
编辑:我认为这实际上是一个PyCharm问题.它实际上使用其警告中的信息和代码完成

但如果我错了,请纠正我,并需要使用其他语法.
我正在使用PyCharm来处理一个项目.项目打开并配置了解释器,可以成功运行.远程解释器路径已正确映射.这似乎是正确的配置,但是PyCharm突出了我的有效代码,带有"未解析的引用"错误,即使对于内置的Python函数也是如此.为什么这些似乎没有被检测到,即使代码运行?有没有办法让PyCharm正确识别这些?
这个问题的具体实例是使用远程解释器,但问题也出现在本地解释器上.
我似乎无法找到为所有文件启用行号的设置,但我必须始终右键单击并在每个文件的基础上启用此功能.
必须有一个全球性的设置,对吗?
我在Windows上使用PyCharm并想要更改设置以将最大行长度限制为79字符,而不是默认的120字符限制.
我在哪里可以更改PyCharm中每行的最大字符数?
我记得当我使用Eclipse时,当按住CTRL并使用向左或向右箭头时,Eclipse会LongCamelCaseWrittenWord在几个步骤中导航.一个骆驼案例的话.
所以它将如下所示(管道|代表实际的光标位置):
|LongCamelCaseWrittenWord -> CTRL+RIGHT_ARROW ->
Long|CamelCaseWrittenWord -> CTRL+RIGHT_ARROW ->
LongCamel|CaseWrittenWord -> CTRL+RIGHT_ARROW ->
LongCamelCase|WrittenWord -> CTRL+RIGHT_ARROW ->
LongCamelCaseWritten|Word -> CTRL+RIGHT_ARROW ->
LongCamelCaseWrittenWord|
Run Code Online (Sandbox Code Playgroud)
有没有办法如何在IntelliJ中实现这一目标?目前,IntelliJ会立即跨越整个单词.
使用IntelliJ 9.0
我有一个整数值x,我需要检查它是否在a start和end值之间,所以我写下面的语句:
if x >= start and x <= end:
# do stuff
Run Code Online (Sandbox Code Playgroud)
这个陈述有下划线,工具提示告诉我必须
简化链式比较
据我所知,这种比较就像它们来的一样简单.我错过了什么?
使用PyCharm,我注意到它提供转换dict文字:
d = {
'one': '1',
'two': '2',
}
Run Code Online (Sandbox Code Playgroud)
进入一个dict构造函数:
d = dict(one='1', two='2')
Run Code Online (Sandbox Code Playgroud)
这些不同的方法在某些重要方面有所不同吗?
(在写这个问题时,我注意到使用dict()它似乎不可能指定一个数字键.. d = {1: 'one', 2: 'two'}是可能的,但显然,dict(1='one' ...)不是.还有其他吗?)
当用d = {}Pycharm的代码检查器初始化字典时会产生警告,说
这个字典创建可以重写为字典文字.
如果我重写它d = dict(),警告就会消失.由于{}已经是字典文字,我很确定该消息是错误的.此外,似乎都d = {}和d = dict()有效,Python化.
这个相关的问题似乎得出结论,选择只是风格/偏好的问题: "d = dict()"和"d = {}"之间的差异
Pycharm为什么会抱怨d = {}?
更新:
Mac钉了它.警告实际上应用于多行,而不仅仅是标记的行.
Pycharm似乎在寻找一系列连续的语句,您可以在其中初始化字典,然后在字典中设置值.例如,这将触发警告:
d = {}
d['a'] = 1
Run Code Online (Sandbox Code Playgroud)
但是这段代码不会:
d = {}
pass
d['a'] = 1
Run Code Online (Sandbox Code Playgroud) 我刚刚切换到Pycharm,我很高兴它提供了所有警告和提示,以改进我的代码.除了这个我不明白的:
This inspection detects shadowing names defined in outer scopes.
我知道从外部作用域访问变量是不好的做法但是遮蔽外部作用域的问题是什么?
这是一个例子,Pycharm给了我警告信息:
data = [4, 5, 6]
def print_data(data): # <-- Warning: "Shadows 'data' from outer scope
print data
print_data(data)
Run Code Online (Sandbox Code Playgroud) pycharm ×10
python ×8
camelcasing ×1
coding-style ×1
dictionary ×1
ide ×1
navigation ×1
pep8 ×1
python-3.5 ×1
python-3.x ×1
typing ×1