小甲鱼Python笔记(类)

类和对象

类的构造方法 def __init__():

1 class People:
2     def __init__(self,name):
3         self.name = name

注意:在构造方法中的变量不用再次声明,必须有self,创建类的对象是用=

类的私有成员

让方法或者类变为私有,只要在它的名字前加上双下划线

1 class People:
2     __name = ‘laowang‘
3     def getname(self):
4         return self.__name

注意:类的私有成员可以通过方法访问,也可以通过   _类名__私有成员这种格式来访问

类的继承

class 子类(父类、基类、超类)

在继承构造函数的过程中,可以用以下两个方法,推荐方法2:

(1)调用未绑定的父类构造方法

1 class People:
2     def __init__(self):
3         self.name = ‘aa‘
4 class Student(People):
5     def __init__(self):
6         People.__init__(self)
7         self.son = 20

(2)使用super

class People:
    def __init__(self):
        self.name = ‘aa‘
class Student(People):
    def __init__(self):
        super().__init__()
        self.son = 20

super可以不带任何参数,但是当父类中有参数传入,super后的__init__要加上参数而且不能加上self

1 class People:
2     def __init__(self,name):
3         self.name = name
4 class Student(People):
5     def __init__(self,name,sno):
6         super().__init__(name)
7         self.name = name
8         self.sno = sno

类的组合

类之间没用明显继承关系可以用组合,比如一个电话簿的类由电话和地址类组合起来:

 1 class Tel:
 2     def __init__(self,x):
 3         self.info = x
 4
 5 class Add:
 6     def __init__(self,y):
 7         self.info = y
 8
 9 class Notebook:
10     def __init__(self,x,y):
11         self.tel = Tel(x)
12         self.add = Add(y)
13     def print_info(self):
14         print("Tel:%s\nAdd:%s" %(self.tel.info,self.add.info))

类 类对象 实例对象

类对象就像C++中的static变量,一个对象有了实例对象后就将类对象的值覆盖了

属性名如果和方法名相同,属性会覆盖方法

绑定

对象.__dict__返回对象拥有的属性

对象调用后方法绑定到实例对象上del类后,a的方法还是存在的,因为A的方法和属性都是static,程序退出前不会消失

一些和类相关的BIF

issubclass(class, classinfo)


isinstance(object, classinfo)


hasattr(object, name)  注意第二个参数要用字符串格式


getattr(object, name[, default])


setattr(object, name, value)  设置属性

delattr(object, name)     删除属性,属性不存在抛出异常 

时间: 2024-10-20 06:19:50

小甲鱼Python笔记(类)的相关文章

小甲鱼Python笔记(下)

二十八 二十九  文件 打开文件 open(文件名[,模式][,缓冲]) 注意open是个函数不是方法 模式: 缓冲: 大于1的数字代表缓冲区的大小(单位是字节),-1(或者是任何负数)代表使用默认缓冲区大小 只有用flush或者close时才会更新硬盘的数据 三种标准的流: 输入:sys.stdin 输出:sys.stdout  错误:sys.stderr 用list()让文件成为一个列表,每一行是一个元素 用f.seek(0,0)还原文件指针到起始位置 用for读取文件中的每一行 三十  o

小甲鱼Python笔记

Python的第三方简单图形界面的GUI类库(easygui)下载及安装 下载:Easygui官网http://easygui.sourceforge.net下载easygui压缩包 安装:将解压后的easygui.py复制到Python安装目录下的Lib\site-packages文件夹下 测试:调出Python的IDLE,输入 >>>import easygui >>>easygui.msgbox("This is test!") 若出现一个对话

Python笔记——类定义

Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可以使用其属性,实际上,创建一个类之后,可以通过类名访问其属性 如果直接使用类名修改其属性,那么将直接影响到已经实例化的对象 类的私有属性: __private_attrs  两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问 在类内部的方法中使用时 self.__private_attrs 类的方法 在类地内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须

小甲鱼python基础教程飞机大战源码及素材

百度了半天小甲鱼python飞机大战的源码和素材,搜出一堆不知道是什么玩意儿的玩意儿. 最终还是自己对着视频一行行代码敲出来. 需要的同学点下面的链接自取. 下载 原文地址:https://www.cnblogs.com/144823836yj/p/10162920.html

小甲鱼python视频第四讲(笔记及课后习题答案)

今天主要学习的是关于第二讲中那个猜数字游戏的改进,在课程中主要学到了以下知识点: 1:python的比较操作符 2:if和else语句的使用 3:while循环 4:and的使用 5:简单的模块引用(本课程为random的引用) 1,关于python的比较操作符,有如下几种: 1 python比较操作符 2 3 > 左边大于右边 4 >= 左边大于等于右边 5 < 左边小于右边 6 <= 左边小于等于右边 7 = 左边等于右边 8 != 左边不等于右边 注意:所使用的符号均为英文输

小甲鱼python视频第五讲(笔记及课后习题答案)

前两天偷懒,没有坚持,今天开始,希望能坚持下去, 今天主要学习的是数据类型,关于python,数据类型主要有整型(int).布尔类型(bool).浮点型(float).E记法(E) 举例说明,整型(int)主要为整数,布尔类型(bool)为判断,true或者false.浮点型(float)包含小数点,E记法为科学计数法. 关于例子,有几点要说明下: 1,type和isinstance.这是两个内置函数,这两个主要的作用都是判断变量的类型(整型.浮点型等),区别是type主要是给出变量的类型,is

小甲鱼python视频第六讲(笔记及课后习题答案)

今天主要学习了常用操作符,如算术操作符.比较操作符.逻辑操作符等,鉴于课件做的太好(赞美小甲鱼~~~).我直接把图贴上来(其实是自己懒) 名词解释 拼接 这是第一节学的一个名词,由于自己偷懒,没有写,这里补充上.拼接,其实就是把两个字符串连接在一起,不是其他,注意下面例子的不同 最后着重强调下版本的问题,附带今天的程序(要在版本三中运行) temp = str(input('请输入一个年份:')) while not temp.isdigit(): temp = input("抱歉,您的输入有误

小甲鱼python疑难点

1.python生成器 2.while 1: num = input('请输入一个整数(输入Q结束程序):') if num != 'Q': num = int(num) print('十进制 -> 十六进制 : %d -> 0x%x' % (num, num)) print('十进制 -> 八进制 : %d -> 0o%o' % (num, num)) print('十进制 -> 二进制 : %d -> ' % num, bin(num)) else: break 十

[Python]小甲鱼Python视频第030课(文件系统:介绍一个高大上的东西)课后题及参考解答

# -*- coding: utf-8 -*- """ Created on Fri Mar 8 15:49:32 2019 @author: Administrator """ """ 动动手: 0. 编写一个程序,统计当前目录下每个文件类型的文件数,程序实现如图: 1. 编写一个程序,计算当前文件夹下所有文件的大小,程序实现如图 2. 编写一个程序,用户输入文件名以及开始搜索的路径,搜索该文件是否存在.如遇到文件