向类传参;数组中的冒号;类与对象的调用;方法使用;

发布于:2022-12-21 ⋅ 阅读:(465) ⋅ 点赞:(0)

Python基础——语法细节



前言

本篇主要谈及Python的基础语法,和一些细节讨论。本篇的缺点是:没有介绍太多基础细节,希望看官多多包含。优点是:对涉及网络调试助手开发用到的相关基础语句和语法做了一定总结,希望可以帮助到有需要的小伙伴。


一、基础语句

1. 导包、导模块

import...		# 导入模块
from  ...    import  ...
from   模块  import  函数		  #导入模块中多个函数加逗号
from    ...   import *		# 导入模块中所有函数

2.运算符

  1. 在 python 3 中,/ 有所改变,不管是整数除法还是浮点数除法,执行的都是浮点数除法,即可以保留计算结果的小数部分。
  2. 在 python 中还提供了 // 这个整除运算符,它做的是整除,而且对浮点数执行的也是整除。

3.数组中冒号的作用

  1. a[i:j] 数组单冒号的作用:
    这里的i指起始位置,默认为0;j是终止位置,默认为len(a),在取出数组中的值时就会从数组下标i(包括)一直取到下标j之前(不包括j),在一个冒号的情况下若出现负数则代表倒数某个位置 a[i:-j] 这里就是从下标i取到倒数第j个下标之前(不包括倒数第j个下标位置的元素)

  2. a[i:j:h] 数组双冒号的作用:
    这里的i,j还是起始位置和终止位置,h是步长,默认为1,若i/j位置上出现负数依然倒数第i/j个下标的位置,h若为负数则是逆序输出,这时要求起始位置下标大于终止位置,在两个冒号的情况下若h为正数,则i默认为0,j默认为len(a);若h为负数,则i默认为-1(即最后一个位置),j默认为-len(a)-1(下标0的前一个位置,这样就能输出到下标0了)

  3. 数组冒号参考链接:点击这里

4.函数定义与变量

  1. Python中定义函数时,若想在函数内部对函数外的变量进行操作,就需要在函数内部声明其为global。
  2. global需要在函数内部声明,若在函数外声明,则函数依然无法操作。
  3. 在python中,变量不需要先声明,直接使用即可。
  4. 首先:python使用的变量,在默认情况下一定是用局部变量。
  5. 其次:python如果想使用作用域之外的全局变量,则需要加global前缀。

二、类和对象的使用

1.基本语法

class 类名(继承的谁)def __init__(self):       #编辑子类方案·    #创建的对象在类中用self代替
        super().__init__()    #继承父类中所有的类
             print            #自己编辑的方案
#获取所有子类:
类名.__subclasses__()
#获取所有父类:
mros = QObject.mro()
	for mro in mros:     
#重写方法  
def notify(self, recevier, event):   
#返回父类方法  就是又一次引用了父类方法
return super().notify(recevier, event)    

2.向类传参

  1. 类下需要用到的对象传值,可以在类下定义,也可以在类生明时加上参数表,通过类外传递来赋值。
#类下传参
class ClientThread(Thread):
    def __init__(self, window):
    	Thread.__init__(self)
        self.window = window
	def run(self):
	tcp = '192.168.03.250'
	port = 65003
    BUFFER_SIZE = 1024
#类外传参
class ServerThread(Thread):
    def __init__(self, Window, ip, port):
TCP_IP = '192.168.03.250'
TCP_PORT = 65003
serverThread = ServerThread(window, TCP_IP, TCP_PORT)

3.不同类之间相互调用

  1. 不同类之间的调用需要实例化。
  2. python的类是由一些特定的语句组成的,具有某些功能的代码片段,实例是调用类生成的,每次调用一个类,就得到这个类的新的实例。通俗点理解就是“类提供默认行为,是实例的工厂”。
  3. 类定义完成后,就会产生一个类对象,绑定到了标识符ClassName上。
  4. 类创建后self.只能再类内调用类的方法。
  5. 只有创建对象实例化后才可以在类外调用方法。
a = MyClass()  
    这就是实例化使用上面的语法,在类对象名称后面加上一个括号,就调用类的实例化方法,完成实例化。
    实例化就真正创建一个该类的对象(实例)
    Python类实例化后,会自动调用__init__方法。这个方法第一个形式参数必须留给self,其它参数随意
    初始化,函数可以有多个参数,请注意第一个位置必须是self,例如 init(self, name, age)
    注意:
        init()方法不能有返回值,也就是只能是return None

4.对象释放

  1. 父对象被释放,子对象也被释放。对象只能有一个父对象,且是最后设置的父对象。
  2. 当对象被其他对象引用时,del删除语句不起作用。
  3. deleteLater()并没有将对象立即销毁,而是向主消息循环发送了一个event,下一次主消息循环收到这个event之后才会销毁对象 del 只是切断了对象之间的连接并不能解除引用,只要还在引用就仍然可以作用。

5.常用操作类和对象的方法

if recevier.inherits("QPushButton"):      #筛选消息类型
recevier.inherits("QPushButton") and event.type() == QEvent.MouseButtonPress:  #筛选信号
setObjectName   #给对象设置唯一的名字
objectName()  #获取对象的名字
.property"属性名称"#检索名称获取对象的属性值
dynamicPropertyNames()    #获取通过setProperty设置对象的属性

.notify () 条件变量对象
条件变量允许一个或多个线程等待,直到被另一个线程通知为止。 此方法用于唤醒任何正在等待条件变量的线程。

本文含有隐藏内容,请 开通VIP 后查看