python语法相关---4、

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啊,这样直接搜一个已经安装的库就可以找到位置了

二、内容在总结中

博客对应课程的视频位置:

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/13157787.html