作为新手,我把之前遇到的问题贴出来

错误提示1: TypeError: unbound method a() must be called with A instance as first argument (got nothing instead)

 class A:
def a(self):
print("I'm a") A.a()

执行报错TypeError: unbound method a() must be called with A instance as first argument (got nothing instead)

表示没有对类进行实例, 改为:

 class A:
def a(self):
print("I'm a")
obj=A()
obj.a()

或者:

 class A:
@staticmethod # 静态方法
def a():
print("I'm a") A.a()

说明:

一是通过def定义的 普通的一般的,需要至少传递一个参数,一般用self,这样的方法必须通过一个类的实例去访问,类似于c++中通过对象去访问;

二是在def前面加上@classmethod,这种类方法的一个特点就是可以通过类名去调用,但是也必须传递一个参数,一般用cls表示class,表示可以通过类直接调用;

三是在def前面加上@staticmethod,这种类方法是静态的类方法,类似于c++的静态函数,他的一个特点是参数可以为空,同样支持类名和对象两种调用方式;

在看一个例子:
 class Person:
count = 0
def __init__(self):
self.name='Flay'
self.count+=1
Person.count +=2
print(self.count)
print(Person.count) if __name__ == '__main__':
p = Person()
#Person.name
输出:
  1
2
因为self 是类本身属性, Person.count 表示count为类的静态属性
如果直接Person.name 会直接报错:AttributeError: class Person has no attribute 'name' 错误提示2:RuntimeError: super-class __init__() of type ani was never called
 # -*- coding:utf8 -*-
from PyQt4.QtGui import *
import sys class ani(QWidget):
def __init__(self):
self.resize(10, 20) if __name__=='__main__':
app = QApplication(sys.argv)
window = ani()
window.show()
sys.exit(app.exec_())

报错原因:该类ani继承自QWidget,但没有给QWidget构造函数,如果类ani不继承任何基类可以这样:

 class ani(object):
def __init__(self):
print('aaa') if __name__=='__main__':
win = ani()

所以,创建了一个名为 ani 的新类, 该类继承 QWidget 类。 因此我们必须调用两个构造函数——ani 的构造函数和继承类 QWidget 类的构造函数,代码改为如下:

 from PyQt4.QtGui import *
import sys class ani(QWidget):
def __init__(self):
super(ani, self).__init__()
self.resize(10, 20) if __name__=='__main__':
app = QApplication(sys.argv)
window = ani()
window.show()
sys.exit(app.exec_())

错误3:You are using pip version 7.1.2, however version 8.1.2 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' comm and.

pip install *** 报错

解决办法:

C:\Python35\Scripts>easy_install.exe pip==8.1.

然后在安装包

C:\Python35>pip install C:\pypiwin32--cp35-none-win32.whl

错误4: Unable to find "/usr/include/python3.6m/pyconfig.h" when adding binary and data files.

使用pyinstaller.py 打包的时候提示找不到pyconfig.h 文件

解决办法; 安装python3-dev

sudo apt install python3-dev

原本/usr/include/python3.6m目录只有3个.h文件,安装python3-dev后该目录变为100多个.h文件,其中就包含pyconfig.h

问题5: pip修改镜像源

pip的镜像地址: https://pypi.org  因为地址在国外,pip install  packages 慢的怀疑人生,或者出现timeout.此时可以考虑换成国内pypi镜像源

地址:https://pypi.doubanio.com/simple/

新建文件: ~./pip/pip.conf

填写index-url

[global]
index-url = https://pypi.doubanio.com/simple/

注意一点,地址是https,负债会提示:   The repository located at pypi.doubanio.com is not a trusted or secure host and is being ignored. If this repository is available via HTTPS it is recommended to use HTTPS instead, otherwise you may silence this warning and allow it anyways with '--trusted-host pypi.doubanio.com'.

问题6: 字符串(str)列表(list)元组(tuple) 互相转换

mystr='x1y1'
mylist=['x2y2']
mytuple=('x3y3',) # ('x3y3') == <class 'str'>

相互转换

# 字符串 转 列表
Cmylist=[mystr]
print(Cmylist)
Cmylist=mystr.split('')
print(Cmylist)
# 字符串 转 元组
CmyTuple=(mystr,)
print(CmyTuple)
# 列表 转 字符串
Cmystr="".join(mylist) #"@" @连接符
print(Cmystr)
# 列表 转 元组
CmyTuple=tuple(mylist)
print(CmyTuple)
# 元组 转 列表
Cmylist=list(mytuple)
print(Cmylist)

输出:

['x1y1']
['x', 'y', '']
('x1y1',)
x2y2
('x2y2',)
['x3y3']

python 新手遇到的问题的更多相关文章

  1. (转)Python新手写出漂亮的爬虫代码2——从json获取信息

    https://blog.csdn.net/weixin_36604953/article/details/78592943 Python新手写出漂亮的爬虫代码2——从json获取信息好久没有写关于爬 ...

  2. (转)Python新手写出漂亮的爬虫代码1——从html获取信息

    https://blog.csdn.net/weixin_36604953/article/details/78156605 Python新手写出漂亮的爬虫代码1初到大数据学习圈子的同学可能对爬虫都有 ...

  3. Python 新手常犯错误

    Python 新手常犯错误(第二部分) 转发自:http://blog.jobbole.com/43826/ 作用域 在这篇文章里,我们来关注作用域在Python被误用的地方.通常,当我们定义了一个全 ...

  4. python新手必躺的5大坑

    python新手必躺的5大坑 对于Python新手来说,写代码很少考虑代码的效率和简洁性,因此容易造成代码冗长.执行慢,这些都是需要改进的地方.本文是想通过几个案列给新手一点启发,怎样写python代 ...

  5. python新手上车001

    python新手上车001 一般建议: 1.下载:从https://www.python.org/downloads/windows/  python官网进行下载建议就从3.7.2开始吧(我从这个版本 ...

  6. Python新手学习raise用法

    当程序出现错误时,系统会自动引发异常.除此之外,Python也允许程序自行引发异常,自行引发异常使用 raise 语句来完成. 很多时候,系统是否要引发异常,可能需要根据应用的业务需求来决定,如果程序 ...

  7. [Python]新手写爬虫全过程(已完成)

    今天早上起来,第一件事情就是理一理今天该做的事情,瞬间get到任务,写一个只用python字符串内建函数的爬虫,定义为v1.0,开发中的版本号定义为v0.x.数据存放?这个是一个练手的玩具,就写在tx ...

  8. Python 新手常犯错误(第二部分)

    转发自:http://blog.jobbole.com/43826/ 在之前几个月里,我教一些不了解Python的孩子来慢慢熟悉这门语言.渐渐地,我发现了一些几乎所有Python初学者都会犯的错误,所 ...

  9. Python新手学习基础之初识python——与众不同2

    看完了Python的缩进,现在来看看Python的标识符.引号和注释. 标识符 关于Python的标识符,其实不是与众不同,只是有一定的规则. 标识符是编程时使用的名字.在Python中,标识符有几点 ...

随机推荐

  1. 初识JVM--java虚拟机的基本知识

    JVM运行时的内存块 pc寄存器:(线程独有)保存线程运行的java方法地址 Java 虚拟接栈(线程独有):用于存储线程的栈帧 Java堆(全局共享):随着Java虚拟机的启动 创建 存储着所有对象 ...

  2. 线程池 Threadpool (还需要补充)

    1.池(pool)是一种常见的提高性能的方式.有时创建和销毁一些资源是非常耗费时间的行为.我们会考虑在一个池内放一些资源,在用的时候拿,不够的时候添加,用完就归还,这样就可以避免不断的创建和销毁资源了 ...

  3. 记一次ss故障

    本文主要参考: https://github.com/shadowsocks/shadowsocks shadowssocks 分为客户端和服务器端. 我们平时买的服务,使用是要用的是客户端. 如果你 ...

  4. GIT文档

    GIT文档http://git.oschina.net/progit/http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c ...

  5. 微信jsApI及微信分享对应在手机浏览器的调用总结。

    摘录自别人的博客: 第一篇:微信内置浏览器的JsAPI(WeixinJSBridge续) 之前有写过几篇关于微信内置浏览器(WebView)中特有的Javascript API(Javascript ...

  6. throttle和debounce简单实现

    function debounce(delay,fn){ var timer; return function(){ var ctx = this,args = arguments; clearTim ...

  7. telnet报“Unable to connect to remote host:Connection refused”错误

    Linux下面telnet ip 端口号 报错误"Unable to connect to remote host:Connection refused"的时候,大部分是目标机的端 ...

  8. [从产品角度学EXCEL 02]-EXCEL里的树形结构

    这是<从产品角度学EXCEL>系列第三篇. 前言请看: 0 为什么要关注EXCEL的本质 1 excel是怎样运作的 或者你可以去微信公众号@尾巴说数 获得连载目录. 本文仅由尾巴本人发布 ...

  9. 谈谈混合 App Web 资源的打包与增量更新

    综述 移动 App 的运行环境具有带宽不稳定,流量收费,启动速度比较重要等特点,所以混合 App 如何加载 Web 资源并不是一个新问题.本文目的是总结出一种资源打包下载的思路和方案,并且提供一种打包 ...

  10. httpie 取代 curl

    接口测试有人喜欢postman(for windows or mac) 如果长期用linux工作,可能更喜欢命令的方式,比如curl最近深入了解了下django-rest-framwork,他们推荐了 ...