学习<> by Alan D.Moore记录(一)

1.关于from module import *的说明

在Python的教材和示例代码中,经常会看到 from xxx import * 的用法,但在实际产品的代码中,应该要避开这样的用法。Python模块中包含任何数量的类、函数、或者变量,但使用from xxx import * 用法调用模块时,将这些全部导入,可能导致覆盖从其它模块导入的类、函数、或变量。如果觉得重复输入的模块名称很麻烦,可以使用别称导入模块:

  import tkinter as tk

  from tkinter import ttk

 2.Tkinter.Frame

tkinter的Frame类是通用的小部件,通常用于容纳其它的小部件。我们可以在Frame中加入任何数量的widgets,从长远来看(in a long run),在Frame中放置widgets比在主窗口中放置widgets更简单。

3.super()函数

在类继承中,初始化需要引用super()函数。该函数可以给予我们父类的参考。引用super()时,需要带入参数*args和**kwargs,这样子类可以带入父类的任何参数。

class HelloView(tk.Frame):
  """ A friendly little module """
  def __init__(self, parent, *args, **kwargs):
    super().__init__(parent, *args, **kwargs)

如上代码,子类为HelloView,父类为tk.Frame。在子类中,定义初始化函数__init__,初始化函数的形参包括self,parent,*args,**kwargs,然后函数体里,必须要调用super(),对父类进行初始化:super().__init__(parent, *args, **kwargs)

在低版本的Python中,super()调用格式:super(HelloView, self)

4.Tkinger的变量类型

Tkinter具有一系列变量类型,包括StringVar,IntVar,DoubleVar和BooleanVar。 您可能想知道为什么,当Python具有对所有这些(甚至更多!)非常好的数据类型时,为什么我们会使用它们。 Tkinter变量不仅仅是数据的容器:它们具有常规Python变量所缺乏的特殊功能,例如,能够将变量的变化自动传播到所有引用它们的widgets,或者,在这些变量发生变化时触发事件。对Tkinter变量的赋值,需要使用到set()方法,检索数据需要用get()方法。

Tkinter has a collection of variable types including StringVar, IntVar, DoubleVar, and BooleanVar. You might wonder why we'd use these when Python has perfectly good data types for all of these (and more!). Tkinter variables are more than just containers for data: they have special functionality that regular Python variables lack, such as the ability to automatically propagate changes to all the widgets that reference them or trigger an event when they're changed. Here we'll
use them as a way to access the data in a widget without having to keep or pass around references to the widget itself.

Notice that setting a value to a Tkinter variable requires use of the set() method, rather than direct assignment. Likewise, retrieving the data requires use of a get() method. 

5.Tkinger的grid()用法

grid(),正如它的名字,网格,一样,将widgets放在指定的格子中。类似于excel表格,用行row和列column指定位置,用W[West]/E[East]/N[North]/S[South]指定方向,columnspan和rowspan指定占用几个格子。使用columnconfigure()和rowconfigure()分别配置指定column和row的格式。例如:

self.columnconfigure(1, weight=1)

如上代码,指定第2列,扩宽水平宽度,并将其相邻的列压缩到最小宽度[squash surrounding columns to their minimum widths ]。

6.strip()函数的使用

https://www.runoob.com/python/att-string-strip.html

https://blog.csdn.net/lhy2239705435/article/details/90020157

功能:去除指定字符。不输入参数时,默认去除字符左右两边的空格

存在一个变量str,以下常用调用格式

(1)str.strip():去除str字符左右两边的空格

(2)str.lstrip():去除字符串左边的空格

(3)str.rstrip():去除字符串右边的空格

注:此处的空格包含'\n', '\r',  '\t',  ' '

(4)str.strip(‘xx'):去除str字符左右两边的xx

(5)str.lstrip(‘xx'):去除字符串左边的xx

(6)str.rstrip(‘xx'):去除字符串右边的xx

 

 

上一篇:JavaGUI笔记(狂神说Java)


下一篇:如何用Matplotlib优雅地实现NTU-RGB D骨架可视化