python语法相关---4、
一、总结
一句话总结:
人生如负重致远不可急躁
1、为什么要使用静态方法呢?
静态方法和类以及实例对象没有交互,提高效率
由于静态方法主要来存放逻辑性的代码,本身和类以及实例对象没有交互,
也就是说,在静态方法中,不会涉及到类中方法和属性的操作
数据资源能够得到有效的充分利用
2、python中的封装(私有化,私有属性和私有方法)?
在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法
在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法 私有化的【实例】属性不能再外部直接的访问可以在类的内部随意的使用 子类不能继承父类的私有化属性【只能继承父类公共的属性和行为】 class Women: def __init__(self, name): self.name = name # 不要问女生的年龄 self.__age = 18 def __secret(self): print("我的年龄是 %d" % self.__age) xiaofang = Women("小芳") # 私有属性,外部不能直接访问 # print(xiaofang.__age) # 私有方法,外部不能直接调用 # xiaofang.__secret()
3、get函数和set函数解决外部访问私有属性问题?
将self传进来,拿到私有变量
get函数和set函数为自定义函数,为了和封装概念吻合,命名为getXXX和setXXX get函数:获取值 set函数:设置值【赋值,传值】 说明:本质都是一个普通成员函数,get函数一般有返回值,set设置参数 class Women: def __init__(self, name): self.name = name # 不要问女人的年龄 self.__age = 18 def setAge(self): self.__age = 18 def getAge(self): return self.__age def __secret(self): print("我的年龄是%d" % self.__age) a = Women('Alice') print(a.getAge()) >> 18
4、python的property属性?
@property装饰器就是负责把一个方法变成属性调用的。@property定义get方法,@score.setter定义score属性的set方法
class Money(object): def __init__(self): self.__money = 0 # 使用装饰器对money进行装饰,那么会自动添加一个叫money的属性,当调用获取money的值时,调用装饰的方法 @property def money(self): return self.__money # 使用装饰器对money进行装饰,当对money设置值时,调用装饰的方法 @money.setter def money(self, value): if isinstance(value, int): self.__money = value else: print("error:不是整型数字") a = Money() a.money = 100 print(a.money)
5、python异常处理格式?
try...except...else...finally
try: 可能出现错误的代码块 except: 出错之后执行的代码块 else: 没有出错的代码块 finally: 不管有没有出错都执行的代码块
6、python异常处理注意?
A、将可能出错的代码放到try里面,except可以指定类型捕获异常。except里面的代码是捕获到异常时执行,将错误捕获。
B、这样程序就不会因为一段代码包异常而导致整个程序崩溃。
C、不需要在每个可能出错的地方去捕获,只要在合适的层次去捕获错误就可以了这样的话就大大减少我们写try---except的麻烦
import time try: # 如果你觉得代码可能出现问题, 那么放在try语句中, 只执行一次; print(s) #可能NameError except NameError as e: # 对于异常进行一个重命名;记录了异常的详细信息; # 可能执行一次, 也可能不执行; print('名称错误') with open('except.log','w') as f: #把异常内容写入except.log文件 f.write('名称错误') finally: # 无论是否出现异常, 肯定会执行一次 print('处理结束')
7、python动态的添加属性和方法?
就是创建对象实例后,动态的添加属性和方法,就像js的操作
8、python中的__slots__?
如果要限制在运行的时候给类添加属性,Python允许在定义class的时候,定义一个特殊的_slots__变量,来限制该class实例能添加的属性。
class Player2(object): __slots__ = ['uid', 'name', 'stat', 'level', 'sex'] def __init__(self, uid, name, stat=0, level=1): self.uid = uid self.name = name self.stat = stat self.level = level
9、python安装插件?
安装库:pip3 install pygame
查看已安装的第三方库:pip list 或 pip3 list
pygame安装
安装命令:pip install pygamer
提示:如果有多个版本,同时装有python2.7和python3.6时可以使用pip3 install pygame
查看已安装的第三方库:pip list 或 pip3 list
10、如果pycharm中安装python库出错咋办?
如果pycharm中不能直接安装库,可以在系统中安装好之后然后把它移动到pycharm对应的项目中去
在安装pygame模块的时候尤其要注意一下: 如果在pychram中安装不成功 此时我们就可以换种思路: 1:确保在系统层面的python环境里面已经安装了pygame[pip insta1l pygame]一般都可以安装成功 2:我们就可以把已经安装好的pygame模块的文件夹拷贝到pycharm所创建项目中的venv虚拟环境里面 【E:Coding_FolderpythonfirstAgainvenvScripts】
11、怎么找python在系统中安装库的路径?
用everything啊,这样直接搜一个已经安装的库就可以找到位置了
二、内容在总结中
博客对应课程的视频位置: