python的学习day_06

继承:

单继承:

在子类定义的时候, 后面多写个括号,括号里面写上你继承的父类

代码:
class Phone:
    IMEI = None
    produce = None

    def call_by_4g(self):
        print("4g通话")


class Phone2023(Phone):  # 继承 Phone
    face_id = True

    def call_by_5g(self):
        print("2023年最新的5g通话")


Phone2023().call_by_4g()
Phone2023().call_by_5g()

运行结果:

多继承:

多继承,就是在类之间加上逗号 放入

要是一个类里面什么都不写会报错的,怎么办呢?加个pass关键字,就可以啦,让语法不产生错误

多继承,谁在前面谁优先, 要是属性或者是方法一样了,就继承优先级高的

class Sing:
    def my_sing(self):
        print("唱", end=" ")


class Jump:
     def my_jump(self):
         print("跳", end=" ")

class Rap:
    def my_rap(self):
        print("rap", end=" ")

class Kun(Sing, Jump, Rap):
    def Introduce(self):
        print("大家好,我叫CXK, 我会: ", end=" ")
        self.my_sing()
        self.my_jump()
        self.my_rap()

Kun().Introduce()

运行结果:

java继承和python继承的区别: 

  1. 语法差异

    • 在 Python 中,继承通过在类定义时在类名后面加上要继承的父类来实现,例如:class SubClass(ParentClass):
    • 在 Java 中,继承同样是通过使用关键字 extends 后跟父类名来实现,例如:class SubClass extends ParentClass { }
  2. 多继承支持

    • Python 支持多重继承,一个子类可以继承自多个父类。
    • Java 不支持多重继承,一个子类只能继承自一个父类,但可以实现多个接口。
  3. 方法重写

    • 在 Python 中,方法的重写是动态的,子类可以重写父类的方法,而且不需要在子类中特别声明。
    • 在 Java 中,方法的重写需要使用 @Override 注解来明确标识,子类重写父类方法时需要遵循方法签名(名称和参数列表)完全相同的规则。
  4. 访问控制

    • 在 Python 中,没有像 Java 中的 public、protected、private 这样的访问控制修饰符,所有成员变量和方法都默认为公有的。
    • 在 Java 中,可以使用 public、protected、private 等关键字来控制成员变量和方法的访问权限。
  5. 构造函数

    • 在 Python 中,子类的构造函数可以通过 super().__init__() 或直接调用父类名来调用父类的构造函数。
    • 在 Java 中,使用 super() 关键字来调用父类的构造函数。

复写和使用父类成员:

复习和java里面的复写是一样的,就是把父类里面的方法重写一下

在 Python 和 Java 中,super 关键字都用于调用父类的方法或构造函数,但它们的使用方式确实有一些区别。

在 Python 中:

  • super() 可以出现在任何位置,因为它是一个函数调用,而不是一个关键字。
  • 通常情况下,super() 调用会像这样使用:super().some_method(),它会自动查找当前类的父类,并调用父类中的对应方法。

在 Java 中:

  • super 关键字只能作为语句的第一条语句,用于显式调用父类的构造方法,例如:super(params)
  • 在方法内部调用父类的方法时,通常是直接使用 super 关键字,如:super.someMethod()

虽然它们的语法和使用方式有些区别,但核心功能都是相似的:调用父类的方法或构造函数。需要注意的是,Java 中的 super 是一个关键字,而 Python 中的 super() 是一个内置函数,这也是二者之间的一个重要区别。

 代码:
class Phone:
    def call(self):
        print("打电话")


class NewPhone(Phone):
    def call(self):  # 重写父类里面的方法
        super().call()  # 调用父类里面的call()方法
        print("用5g手机打电话")
        super().call()  # 这个super放在前面和后面都可以 这个和java有区别


NewPhone().call()

运行结果:

小结:

类型注解:

变量的类型注解:

基础语法:

变量: 类型

代码:
var_1: int = 10
var_2: float = 3.1415926
var_3: bool = True
var_4: str = "FindYou."

基础容器类型注解:

my_list: list = [1, 2, 3]
my_set: set = {1, 2, 3}

容器类型详细注解:

my_int_list: list[int] = [1, 2, 3]  
my_tuple: tuple[str, int, bool] = ("FindYou.", 666, True)
my_dict: dict[str, int] = {"FindYou.": 666}

 注释中进行类型注解:

type: 类型

代码:
var_1 = 12  # type: int
var_2 = {"Find": 1, "You.": 1}  # type: dict[str, int]

 小结:

方法的类型注解:

形参注解:

 代码:
def add(x: int, y: int):
    return x + y


x = 1
y = 2
print(add(x, y))  # 3

返回值注解:

代码:
def add(x: int, y: int) -> int:  # -> int 表示返回值是int 类型注解 不是强制性的 而是建议的和提示的
    return x + y


x = 1
y = 2
print(add(x, y))  # 3

 Union类型注解:

代码:
# Union表示的是混合的 也是联合的注解
from typing import Union

my_lis: list[Union[str, int]] = [1, 2, 3, "FindYou."]


def func(data: Union[int, str]) -> Union[int, str]:  # 表示的是 可以传字符串 也可以传int 都可以 开心就好
    return data


func("FindYou.")

多态:

代码:

class Animal:
    def speak(self):
        pass


class Dog(Animal):
    def speak(self):
        print("汪汪汪")


class Cat(Animal):
    def speak(self):
        print("喵喵喵")


def make_noise(animal: Animal):
    animal.speak()


dog = Dog()
cat = Cat()

make_noise(dog)
make_noise(cat)

运行结果:

抽象类(接口):

也就是方法里面是空实现的(pass), 具体的方法实现,由子类自行决定.这样称为抽象类也可以称为接口

mysql:

DDL -  库管理:

DDL - 表操作:

DML:

DML指的是数据操作语言,用来对数据库中表的数据记录进行更新.

关键字:

  • 插入 insert
  • 删除 delete
  • 更新 update
数据插入 insert:

代码演示
create table student(
    id int,
    name varchar(10),  # 注意字符串只支持 单引号
    age int
);

-- 插入数据

insert into student (id, name, age) values(1, 'FindYou', 20), (2, 'LoveFinder', 19)
运行结果:

当然插入的数据如果是全部属性的话 可以把 (id, name, age)给省略掉 也就是下面的这个写法:

数据删除 delete:

判断的条件可以写 =,   <,   >,   <=,   >=,   !=,  等等

代码:
delete from student where id = 1; -- 删除id为1的这个信息
运行的结果:

把student给删除掉

delete from student ;
数据更新 update:

update student set name = 'FindMe.' where id = 1 
  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FindYou.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值