easygui
https://www.cnblogs.com/wu-wu/p/11435463.html
import easygui as g
g.msgbox('hello')
建议不要在idle运行easygui
**1. msgbox()**可设置标题和消息
msgbox(msg=’(Your message goes here)’, title=’ ', ok_button=‘OK’, image=None, root=None)
import easygui as g
>>> g.msgbox('打个招呼','你好')
2. ccbox()
ccbox() 提供一个选择:“C[o]ntinue” 或者 “C[a]ncel”,并相应的返回 True 或者 False。
3. buttonbox() 设置自己的按钮
buttonbox(msg=’’, title=’ ', choices=(‘Button[1]’, ‘Button[2]’, ‘Button[3]’), image=None)
通过为关键字参数 image 赋值(gif、png)可以显示图片
g.buttonbox('fruit?',choices=['apple','banana','pear'])
4 boolbox()
boolbox(msg=‘Shall I continue?’, title=’ ‘, choices=(’[Y]es’, ‘[N]o’), image=None, default_choice=‘Yes’, cancel_choice=‘No’)
5 choicebox()
为用户提供了一个可选择的列表,使用序列(元祖或列表)作为选项,这些选项会按照字母进行排序。
import easgui as g
g.choicebox('a list',choices=['你好','我好','大家好'])
6.multchoicebox() 函数也是提供一个可选择的列表,与 choicebox() 不同的是,multchoicebox() 支持用户选择 0 个,1 个或者同时选择多个选项。
对象=方法+属性
class Cat:
#属性
color='white'
weight='10'
leg='4'
#方法
def climb(self):
print('猫咪正在往前')
def eat(self):
print('吃小鱼干')
输出结果:
也可以访问属性
>>> a=Cat()
>>> a.color
'white'
1.在类的方法内使用类的属性变量,需要:self.变量名
多态:可以对不同类的对象,调用相同的方法,产生不同的结果
self就是谁调用它,self就是谁
class Ball:
def NAME(self,name):
print('我叫%s,我是一颗球'% name)
def kick(self):
print('谁踢我')
init(self,param1,param2…) 前后各两个下划线
可以通过重写此方法,来自定义对象的初始化操作
class Ball:
def __init__(self,name):
self.name=name
def kick(self):
print('谁踢我')
输出结果
>>> a=Ball('小球')
>>> a.kick()
谁踢我
name mangling 名字改编:在变量前加两个下划线就会变成私有变量
继承: class 子类名(父类名)
子类可以继承父类的任何属性与方法
>>> class Parent():
def hello(self):
print('正在调用父类的方法')
>>> class Child(Parent):
pass #不打印相当于占座
输出结果
>>> c=Child()
>>> c.hello()
正在调用父类的方法
#如果子类定义与父类同名的方法和属性会自动覆盖父类的
super() 函数是用于调用父类(超类)的一个方法。可以直接用类名调用父类方法在使用单继承的时候没问题。
e.g
super().init()
默认执行当前类的父类中的方法, 并且将当前类的实例对象self传了进去
绑定:python要求方法有实例才能被调用
通过图纸(类)建(实例化)了房子,但是没有门牌号(self),所以找不到
实例对象.__dict__只会显示实例对象对应的实例属性
>>> class APPLE:
def setXY(self,x,y):
self.x=x
self.y=y
def printXY(self):
print(self.x,self.y)
>>> a=APPLE()
>>> a.setXY(2,3)
>>> a.__dict__
{'x': 2, 'y': 3}
把类对象删了,类中定义的属性和方法是静态变量还在。但是就像把图纸撕了,没法盖新房子但是原来的盖好的房子不会凭空消失所以a还在
>>> del APPLE
>>> bb=APPLE()
Traceback (most recent call last):
File "<pyshell#42>", line 1, in <module>
bb=APPLE()
NameError: name 'APPLE' is not defined
>>> a.printXY()
2 3