python提升四
Python继承机制及其使用继承机制经常用于创建和现有类功能类似的新类,又或是新类只需要在现有类基础上添加一些成员(属性和方法),但又不想直接将现有类代码复制给新类。也就是说,通过使用继承这种机制,可以轻松实现类的重复使用。
举个例子,假设现有一个 Shape 类,该类的 draw() 方法可以在屏幕上画出指定的形状,现在需要创建一个 Form 类,要求此类不但可以在屏幕上画出指定的形状,还可以计算出所画形状的面积。要创建这样的类,笨方法是将 draw() 方法直接复制到新类中,并添加计算面积的方法。
就是使用类的继承机制。实现方法为:让 From 类继承 Shape 类,这样当 From 类对象调用 draw() 方法时,Python 解释器会先去 From 中找以 draw 为名的方法,如果找不到,它还会自动去 Shape 类中找。如此,我们只需在 From 类中添加计算面积的方法即可,示例代码如下
123456789class Shape: def draw(self,content): print("画",content)class Fo ...
python提升三
Python property()函数:定义属性我们一直在用“类对象.属性”的方式访问类中定义的属性,其实这种做法是欠妥的,因为它破坏了类的封装原则。正常情况下,类包含的属性应该是隐藏的,只允许通过类提供的方法来间接实现对类属性的访问和操作。
因此,在不破坏类封装原则的基础上,为了能够有效操作类中的属性,类中应包含读(或写)类属性的多个 getter(或 setter)方法,这样就可以通过“类对象.方法(参数)”的方式操作属性
123456789101112131415161718class CLanguage: def __init__(self,name): self.name = name #设置 name 属性值的函数 def setname(self,name): self.name = name #访问nema属性值的函数 def getname(self): return self.name #删除name属性值的函数 def delname(self): self.name ...
Tkinter-Scale控件
Tkinter Scale控件详解Scale 控件,即滑块控件或标尺控件,该控件可以创建一个类似于标尺式的滑动条对象,用户通过操作它可以直接设置相应的数值(刻度值)。
常用的基本属性:
activebackground指定当鼠标在上方飘过的时候滑块的背景颜色
bigincrement
设置“大”增长量
该选项设置增长量的大小
默认值是 0,增长量为范围的 1/10
borderwidth
指定边框宽度
默认值是 2
command
指定一个函数,每当滑块发生改变的时候都会自动调用该函数
该函数有一个唯一的参数,就是最新的滑块位置
如果滑块快速地移动,函数可能无法获得每一个位置,但一定会获得滑块停下时的最终位置
digits
设置最多显示多少位数字
补充注释:例如设置 from 选项为 0,to 选项为 20,digits 选项设置为 5,那么滑块的范围就是在 0.000 ~ 20.000 直接滑动
默认值是 0(不开启)
font
指定滑块左侧的 Label 和刻度的文字字体
默认值由系统指定
from_
设置滑块最顶(左)端的位置
默认值是 0
hi ...
python提升二
Python self用法在定义类的过程中,无论是显式创建类的构造方法,还是向类中添加实例方法,都要求将 self 参数作为方法的第一个参数。
1234567class Person: def __init__(self): print("我使用了构造函数") def say(self,name): print("我名字是:",name)xiaoyang = Person()xiaoyang.say("xiaoyang")
Python 只是规定,无论是构造方法还是实例方法,最少要包含一个参数,并没有规定该参数的具体名称。之所以将其命名为 self,只是程序员之间约定俗成的一种习惯,遵守这个约定,可以使我们编写的代码具有更好的可读性(大家一看到 self,就知道它的作用)。
self 参数的具体作用打个比方如果把类比作造房子的图纸,那么类实例化后的对象是真正可以住的房子。根据一张图纸(类),我们可以设计出成千上万的房子(类对象),每个房子长相都是类似的(都有相同的类变量和类方法),但它们 ...
Tkinter--Checkbutton复选框控件
Checkbutton复选框控件Checkbutton 控件是一种供用户选择相应条目的按钮控件,但与 Radiobutton 不同的是,Checkbutton 控件不仅允许用户选择一项,还允许用户同时选择多项,各个选项之间属于并列的关系。复选框控件同样有许多适用场景,比如选择兴趣爱好、选择选修课,以及购买多个物品等,在这种情况下都可以使用复选框控件语法格式:
Checkbutton(master=None, **options)
复选框控件,除了具有常用的共有属性之外,还具有一些其他重要属性和常用方法属性 :text显示的文本,使用 “\n” 来对文本进行换行。
variable
和复选框按钮关联的变量,该变量值会随着用户选择行为来改变(选或不选),即在 onvalue 和 offvalue 设置值之间切换,这些操作由系统自动完成
在默认情况下,variable 选项设置为 1 表示选中状态,反之则为 0,表示不选中。
onvalue通过设置 onvalue 的值来自定义选中状态的值。offvalue通过设置 offvalue 的值来自定义未选中状态的值。
indicat ...
python提升一
面向对象编程的相关术语面向对象中,常用术语包括:
类可以理解是一个模板,通过它可以创建出无数个具体实例。比如, tortoise 表示的只是乌龟这个物种,通过它可以创建出无数个实例来代表各种不同特征的乌龟(这一过程又称为类的实例化)。
12345678910111213class tortoise: bodyColor = "绿色" footNum = 4 weight = 10 hasShell = True def crawl(self): print("乌龟会爬") def eat(self): print("乌龟吃东西") def sleep(self): print("乌龟在睡觉") def protect(self): print("乌龟缩进了壳里")
对象类并不能直接使用,通过类创建出的实例(又称对象)才能使用。这有点像汽车图纸和汽车的关系,图纸本身(类)并不能为人们使 ...
Tkinter单选框和多选框按钮
Tkinter单选框和多选框按钮单选框按钮控件(Radiobutton),同样允许用户选择具体的选项值,不过与 Listbox 相比,单选按钮控件仅允许用户选择单一的选项值,各个选项值之间是互斥的关系,因此只有一个选项可以被用户选择。Radiobutton 控件通常都是成组出现的,所有控件都使用相同的变量
Radiobutton 可以包含文本或图像,每一个按钮都可以与一个 Python 函数相关联。
当按钮被按下时,对应的函数会被执行。这里需要注意的是,单选按钮控件仅能显示单一字体的文本,但文本可以跨越多行,除此之外,您还可以为个别的字符添加下划线。Radiobutton 除常用的共有属性之外,还具有一些其他属性
activebackground设置当 Radiobutton 处于活动状态(通过 state 选项设置状态)的背景色,默认值由系统指定
compound
默认值为 None,控制 Radiobutton 中文本和图像的混合模式,默认情况下,如果有指定位图或图片,则不显示文本
如果该选项设置为 “center”,文本显示在图像上(文本重叠图像)
设置为 “bottom”,” ...
Tkinter_Combobox控件
Combobox控件通过前面内容的介绍我们知道 Listbox 是一个供用户从列表项中选择相应条目的控件。但在有些情况下,比如列表的项目过多时,若使用列表控件,列出所有选项就会显得界面格外臃肿,这时就需要用到 Combobox 控件,也就是下拉菜单控件(或称复合框),该控件是列表控件的改进版,具有更加灵活的界面,因此其应用场景相比于前者要更加广泛。
不过需要注意的是 Combobox 并不包含在 tkinter 模块中,而是包含在tkinter.ttk子模块中,因此若想使用 Combobox 控件,需要使用下面的导包方式:
from tkinter import ttk
语法格式:
cbox=Combobox(窗口对象,[参数列表])
Combobox 控件在形式虽然与列表控件存在不同,但它们的本质是相同,因此属性和方法是通用的。
对于 Combobox 控件而言,它常用的方法有两个,分别是 get() 和 current(),前者表示获取当前选中选项的内容,后者表示获取选中选项的索引值:
1234567891011121314151617181920import tkint ...
python基础知识六
函数传递参数的方式Python 中,根据实际参数的类型不同,函数参数的传递方式可分为 2 种,分别为值传递和引用(地址)传递:
值传递:适用于实参类型为不可变类型(字符串、数字、元组);
引用(地址)传递:适用于实参类型为可变类型(列表,字典),函数参数进行值传递后,若形参的值发生改变,不会影响实参的值;
函数参数继续引用传递后,改变形参的值,实参的值也会一同改变。例如,定义一个名为 demo 的函数,分别为传入一个字符串类型的变量(代表值传递)和列表类型的变量(代表引用传递):
123456789def nihao(str): str +=str print(str)str1 = "213"nihao(str1)print('值传递:%s' %str1)list = [1,2,3]nihao(list)print('引用传递:%s' %list)
函数关键字参数及用法关键字参数是指使用形式参数的名字来确定输入的参数值。通过此方式指定函数实参时,不再需要与形参的位置完全一致,只要将参数名写正确即可
可以看到,在调 ...
python基础知识五
Python字符串对齐方法(ljust()、rjust()和center()ljust()方法ljust() 方法的功能是向指定字符串的右侧填充指定字符,从而达到左对齐文本的目的。格式如下:S.ljust(width[, fillchar])
S:表示要进行填充的字符串width:表示包括 S 本身长度在内,字符串要占的总长度;fillchar:作为可选参数,用来指定填充字符串时所用的字符,默认情况使用空格。
12n = "xiaoyang"print(n.ljust(15,"1"))
rjust()方法rjust() 和 ljust() 方法类似,唯一的不同在于,rjust() 方法是向字符串的左侧填充指定字符,从而达到右对齐文本的目的。格式如下:S.rjust(width[, fillchar])各个参数的含义和 ljust() 完全相同
12n = "xiaoyang"print(n.rjust(15,"1"))
center()方法center() 字符串方法与 ljust() 和 rjust() ...