PEP8 expected 2 blank lines, found 1
定义方法时,出现期望是2个空白行,但是实际检测到是1个。方法与上面内容间隔期望为两个换行符
PEP8 This dictionary creation could be rewritten as a dictionary literal
定义使用字典时,希望用重写的形式来定义内容,不希望建立的时候直接赋值。
maps.dict()
maps.update({"userName": "zhangsan", "age": 35})
PEP 8: block comment should start with '# '
添加注释,提示以上错误,即#注释符与内容之间应间隔一个空格符
PEP 8: too many blank lines
过多的空白行
TypeError: 'module' object is not callable
oop是个package,fruits是个py文件,Fruits是里面的一个Class类。
问题是在fruits()下,直接报以上错误。原因是python引入的是文件。
对于包下的引用得到的只是一个文件,因为一个py的文件中可能存在多个类。因此需要细化到类才可以。
from oop import fruits # 获取的是文件名 fruits.Fruits 获取对象 from oop.fruits import Fruits # 获取的是Fruits类对象 import oop.fruits as fs # 获取的是文件名 取别名为fs fs.Fruits 获取对象
应用
import oop.fruits as fs def main(): fa = fs.Fruits("我是水果", "产地由子类确定") fa2 = fs.Fruits("我是水果2", "产地由子类确定")
VSCode:module 引入不到
因python默认加载自身py文件和当前文件夹及以内的文件,同时包括zishen pythonpath的lib文件。因此,当我们在一个项目下去运行某些文件时,会出现引用module找不到。
比如以下结构:
|-myproject |---test |------test_login.py |---login |------login.py
当test_login.py 去引入login.py模块,进行测试,执行就会报出module找不到。因为test_login.py下并不存在login.py.
因此需要将工程的环境指向到 myproject。使用vscode的debugRun ,创建launch文件,在内部设定 env
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Python Debugger: Current File", "type": "debugpy", "request": "launch", "program": "${file}", "cwd": "${workspaceFolder}", "console": "integratedTerminal", "env": {"PYTHONPATH":"${workspaceFolder}${pathSeparator}${env:PYTHONPATH}"} } ] }
test_login.py的模块引入变为从当前工程下去目录结构引入模式,比如: login.login。