2020.7.16 python (p36-40)类和对象

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值