首页 > 其他分享 >再次学习类_1

再次学习类_1

时间:2024-05-11 22:30:52浏览次数:13  
标签:__ 再次 name get self 学习 age def

类的单继承,重写构造函数

class BaseClass:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def get_name(self):
        print('this is BaseClass Fun')
        return self.name

    def set_age(self, age):
        self.age = age

class ClassNoInit(BaseClass):
    #init在子类中可以不定义
    def get_age(self):
        return self.age

class ClassNewInit(BaseClass):
    #重写父类init使用下面方法
    def __init__(self, sex, name, age):
        super().__init__(name, age)
        self.sex = sex

    def get_sex(self):
        return self.sex

    def get_name_new(self):
        #指定基类方法调用
        return BaseClass.get_name(self)


if __name__ == '__main__':
    subInstance1 = ClassNoInit('flagzhang', 36)
    print(subInstance1.get_name())
    subInstance2 = ClassNewInit('man', 'flag', 37)
    print(subInstance2.get_name())
    print(subInstance2.get_sex())
    print(subInstance2.get_name_new())

类的多继承

class BaseClass:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def get_name(self):
        print('this is BaseClass Fun')
        return self.name

    def set_age(self, age):
        self.age = age


class BaseClass1:
    def __init__(self, work, sal):
        self.work = work
        self.sal = sal

    def get_work(self):
        return self.work

class MutileBaseClass(BaseClass, BaseClass1):
    #多继承默认super.__init__()只继承第一个父类的构造函数,
    def __init__(self, name, age, work, sal):
        BaseClass.__init__(self, name, age)
        BaseClass1.__init__(self, work, sal)


if __name__ == '__main__':
    mutileBaseInstance1 = MutileBaseClass('flag', 36, 'engineer', 28000)
    print(mutileBaseInstance1.get_work())

dataclass

from dataclasses import dataclass
@dataclass
class Person:
    name: str
    age: int
    work: str

if __name__ == '__main__':
    person1 = Person('flag_dataclass', 36, 'engineer')
    print(person1.name)

类的私有变量

class PrivateAttr:
    #双下划线的属性或者方法在字节编码时会给该对象前面加上一个下划线"_类名"的前缀,所以实例无法访问,可以通过加上"_类名"显式访问
    def __init__(self, name, age):
        self.name = name
        self.__age = age

    def get_age(self):
        return self.__age

    def __get_name(self):
        return self.name

if __name__ == '__main__':
    private1 = PrivateAttr('flagzhang_pri', 36)
    print(private1._PrivateAttr__age)
    print(private1.get_age())
    print(private1.get_age())
    print(private1._PrivateAttr__get_name())

 

标签:__,再次,name,get,self,学习,age,def
From: https://www.cnblogs.com/flags-blog/p/18187270

相关文章

  • WPF 基础、WPF 相关知识、学习、参考项目
     前言:  最初参加工作时,做过WPF项目,后面几年后者虽然有写WPF项目,但多数都是边边角角,写一点满足工作需要。  现在写下WPF,主要就是玩一玩,尝试下不同的东西。  这是我的代码仓库:地址(如果对您有帮助,给颗小星星奖励下吧),在WPF/Lesson10Practice/Practice/下面。基本涵盖WPF......
  • FFT 学习笔记
    应用FFT,中文“快速傅里叶变换”,用来加速多项式乘法和卷积,可以将\(O(n^2)\)的复杂度优化至\(O(n\logn)\)。多项式系数表示法一个\(n\)次\(n+1\)项的多项式\(f(x)\)可以表示为\(f(x)=\sum\limits_{i=0}^{n}a_ix^i\)。也可以用每一项的系数表示\(f(x)\),即\(f......
  • Windows 下 PyTorch 入门深度学习环境安装(CPU版本)
    Windows下PyTorch入门深度学习环境安装(CPU版本)一、安装Anaconda二、虚拟环境配置2.1基础命令列出虚拟环境condaenvlist创建虚拟环境https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/maincondacreate-n虚拟环境名字python=版本-c镜像地址激活环境conda......
  • PyTorch深度学习快速入门教程
    PyTorch深度学习快速入门教程一、基础知识1.1Python学习中的两大法宝1.2pycharm以及jupyter使用及对比将环境写入Notebook的kernel中:python-mipykernelinstall--user--name环境名称--display-name"Python(环境名称)"打开Jupyternotebook,新建Python文件,这时候......
  • 42.C语言有关函数的学习整理
    先看一个简单的函数实现的就是将数组里面的数加起来\t缩进相当于Tab键inta[10]={9,8,7,6,5,4,3,2,1,0};for(inti=0;i<10;++i)a[i]=add(a[i],i);for(inti=0;i<10;++i)printf("%d\t",a[i]); intadd(i......
  • 一种利用光电容积描记(PPG)信号和深度学习模型对高血压分类的新方法
    具体的软硬件实现点击http://mcu-ai.com/MCU-AI技术网页_MCU-AI据世界心脏联合会统计,截至2022年,全球有13亿人被诊断患有高血压,每年约有1000万人死于高血压。一个人有必要拥有有益于心脏健康的生活方式,以防止被诊断出患有心血管疾病(CVD)和动脉疾病等致命疾病的风险。如果一......
  • 笛卡尔树学习笔记
    笛卡尔树引入是一种二叉树,每个节点由一个二元组\((k,w)\)形成。\(k\)满足二叉搜索树的性质,\(w\)满足堆的性质。上面这棵笛卡尔树相当于把数组元素值当作键值\(w\),而把数组下标当作键值\(k\)。显然可以发现,这棵树的键值\(k\)满足二叉搜索树的性质,而键值\(w\)满足小根......
  • 分块 学习笔记
    什么是分块分块,顾名思义是一种将数据分成多块,以实现一些功能的算法。分块算法实质上是一种是通过将数据分成多块后在每块上打标记以实现快速区间修改,区间查询的一种算法。其均摊时间复杂度为\(O(\sqrt{n})\)分块的具体操作分块voidcreate(){ t=sqrt(n); for(inti=1;i<......
  • DSP学习笔记之IIC
    IIC简介IIC总线是同步通信的一种特殊形式,是一种串行,半双工的通信,I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。IIC分为硬件IIC和软件IIC,DSP中有硬件IIC,但是不方便拓展,所以日常使用时使用软件IIC居多。IIC总线通信过程主机发送起始信号启用总线主机发送......
  • DSP学习笔记之SPI
    DSP学习笔记之SPISPI介绍SPI的全称是"SerialPeripheralInterface",意为串行外围接口。SPI是一种高速的,全双工,同步的通信总线,SPI采用主从方式工作,一般有一个主设备和一个或多个从设备;SPI需要至少4根线,分别是MISO(主设备输入从设备输出)、MOSI(主设备输出从设备输入)、SCLK(时钟)、C......