python学习笔记Day8

列表插入
list.insert()方法来在列表的指定位置插入一个元素

list.insert(index, element)

index是要插入元素的位置(从0开始计数),element是要插入的元素。
另外,也可以使用list.append()在列表末尾添加一个元素,或者使用list.extend()将另一个列表中的所有元素添加到现有列表的末尾。

分支和循环语句

for <条件><循环代码>
else

所谓else指的是循环正常结束后要执行的代码,即如果是bresk终止循环的情况。else下方缩进的代码将不执行。

文件系统
open函数
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
面向对象编程
对象=属性+方法
类对象举例如下:

class Tutle:  ##约定开头大写
    color='绿色'
    weight=10
    legs=10
    ####属性
    def climb(self):
        ...
    ##方法

上面并非对象,只能称为类对象
类是一个模板,它定义了属性和方法,以及创建对象时的构造函数等。而对象则是类的实例,即在运行时创建的实体。
类定义了对象所拥有的属性和行为,而对象则继承了这些属性和行为。每个对象都有自己的属性,即使它们拥有相同的类。
类是一个抽象的概念,而对象则是具体的实体。类可以实例化为对象,而对象也可以被归类为其类的实例。
类可以看做是蓝图而对象则是建立在蓝图之上的实际事物。一个类可以用来创建许多不同的对象,每个对象都具有相同的属性和方法,但其属性值可能会不同。

1.封装
即一种信息屏蔽技术
2.多态
不同对象对同一方法响应不同结果
3.继承
子类继承父类的特征与行为,使得子类拥有父类的实例域和方法,或子类从父类继承的方法,使得子类具有父类相同的行为

self详解
就是你把self当做实例(对象)的身份证。
Python的类不能直接使用,只有通过创建实例(对象)才能发挥它的功能,每个实例(对象)都是独一无二的,它可以调用类的方法、属性。类就像灵魂附体一样,让实例(对象)有了自己(self)的功能。
self就是代表着实例本身,当某个实例(对象)调用类方法时,该对象会把自身的引用作为第一个参数自动传给该方法,而这第一个参数就是self。
公有和私有
对象的属性和方法都是公开的
私有属性名的前缀必须是__
超类和基类
继承是一种创建新的类的方式,新创建的叫子类,继承的叫父类、超类、基类。继承的特点就是子类可以使用父类的属性(特征、技能)。继承是类与类之间的关系。

class A():
    def set_name(self,name):
        self.name = name
    def get_name(self):
        return self.name
class B(A):
    def greet(self,str):
        self.str = str
        return self.str
str = "I like Python!"
b = B()
b.set_name("Honker")
Name = b.get_name()
print("My name is {}.".format(Name))
print()
Say = b.greet(str)
print("I say,{}.".format(Say))

超类也称父类,要指定A类是B类的父类,只需要在B类的括号里面加上A类的名称即可。示例:

继承的方法
1.调用未绑定的父类方法
通过继承一个不含任何继承的基类来实现的。这种方式不支持多重继承
新式类继承是通过继承object类来实现的,这种方式支持多重继承。

class Parent(object):
    def __init__(self):
        self.parentAttr = 1
 
    def parentMethod(self):
        print('Calling parent method')
 
class Child(Parent):
    def __init__(self):
        Parent.__init__(self)
 
    def childMethod(self):
        print('Calling child method')

2.使用super函数
super()是一个特殊函数,用于调用父类(超类)的一个方法。当你想要调用父类的一个方法而不需要显式地指定父类的名称时,super()非常有用

class A:
    def add(self, x, y):
        return x + y
 
class B:
    def add(self, x, y):
        return x - y
 
class C(A, B):
    def add(self, x, y):
        return super().add(x, y)
 
c = C()
print(c.add(4, 3))  # Outputs: 7

在这个例子中,C类同时继承了A类和B类,并在C类中使用super()来调用A类的add方法,即使A类在继承链中位于B类的后面。

class A:
    def __init__(self):
        self.x = 10
 
    def display(self):
        print(self.x)
 
class B(A):
    def __init__(self):
        super().__init__()
        self.x = 20
 
    def display(self):
        super().display()
 
b = B()
b.display()  # Outputs: 20

B类重写了A类的display方法,并在display方法中使用super()来调用A类的display方法。这样,即使B类在调用display方法时改变了x的值,也不会影响输出结果。

类对象,类定义,实例对象
类对象:定义的类就是类对象
实例对象:类对象实例化后就是实例对象
类属性:定义在 init 外部的变量
实例属性:定义在__init__内部的带有self.的变量
类方法:定义在类对象中 且 被@classmethod 装饰的方法就是类方法
实例方法:定义在类对象中,且 未被@classmethod 装饰的方法就是实例方法
在这里插入图片描述
注意:
在这里插入图片描述
如图所示:
bb.printBB()会报错
因为实例化后printBB方法会自动传一个bb的实例对象给方法即等同于BB.printBB(bb)
类中定义的属性是静态变量
因此如果删除类后调用方法还会继续执行!!直到程序执行完成
因此在创建变量时应尽可能使用实例属性

python魔法方法
1.init

class tutle:
    def __init__(self,name):
        self.name=name
    def ouput(self):
        print(self.name)

可以通过例如:
所谓init就是一个在创建对象时一定会进行初始化的一个方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值