python和java中 super的使用用法、pycharm与idea中当前工作路径的区别(相对路径区别)、pycharm与idea中环境变量的配置与使用

(补充)IDEA项目结构和Pycharm与IDEA中关于当前工作路径的区别 本文主要介绍一下pycharm和IDEA里面的项目结构的使用方法IDEA还有很多其他功能,类似接口、Maven这些后面都需要慢慢学了增加进去。 阅读详情


一、Python和java中super的使用区别

在 Java 和 Python 中,子类调用父类方法的语法略有不同:

1 Java 中

使用 super 关键字:在子类中,可以使用 super 关键字来调用父类的方法。super 关键字可以用来引用父类的构造方法或普通方法。

(1)调用父类构造方法:super(参数)

  • 调用父类构造方法:在子类的构造方法中使用 super() 调用父类的构造方法。例如:
public class Child extends Parent {
    public Child() {
        super(); // 调用父类的无参构造方法(java里面这种无参构造java虚拟机就算你不写也会自动加上)
        super(参数); // 调用父类的有参构造方法
    }
}

如果父类有带参数的构造方法,可以通过 super(参数) 的形式传递参数给父类构造方法。

(2)调用父类普通方法:super.方法名()

  • 调用父类普通方法:在子类中可以使用 super.方法名() 的形式调用父类的普通方法。例如:
public class Parent {
    public void printMessage(参数) {
        System.out.println("Hello from Parent");
    }
}

public class Child extends Parent {
    public void printMessage() {
        super.printMessage(参数); // 调用父类的 printMessage 方法
        System.out.println("Hello from Child");
    }
}

2 Python

使用 super() 函数:Python 中的子类可以使用 super() 函数来调用父类的方法。super() 函数用于获取父类的对象,并且可以调用父类的方法。

(1)调用父类构造方法:super().init(参数)

  • 调用父类构造方法:在子类的 init 方法中使用 super().init() 来调用父类的构造方法。例如:
class Parent:
    def __init__(self):
        print("Parent initialized")

class Child(Parent):
    def __init__(self):
        super().__init__(参数)  # 调用父类的构造方法
        print("Child initialized")

(2)调用父类普通方法:super().方法名(参数)

  • 调用父类普通方法:同样地,在子类中可以使用 super().方法名() 的形式调用父类的普通方法。例如:
class Parent:
    def print_message(self):
        print("Hello from Parent")

class Child(Parent):
    def print_message(self):
        super().print_message()  # 调用父类的 print_message 方法
        print("Hello from Child")

(3)python2版本的调用语法(淘汰)

另外,在pytorch搭建网络还延续了,Python2的super(当前类,self)使用习惯,在 Python 2 中,super 需要传递两个参数:当前类和 self 对象。但现在Python3这种语法已经可以抛弃了,直接super(),后面空括号就可以了,但pytorch大家搭建网络都还延续了Python2的那个习惯就随大流吧!

class RNN(nn.Module):
    def __init__(self):
        super(RNN, self).__init__() # super().__init__() python3现在只需要这样

        self.rnn = nn.LSTM(         # if use nn.RNN(), it hardly learns
            input_size=INPUT_SIZE,
            hidden_size=64,         # rnn hidden unit
            num_layers=1,           # number of rnn layer
            batch_first=True,       # input & output will has batch size as 1s dimension. e.g. (batch, time_step, input_size)
        )

        self.out = nn.Linear(64, 10)

    def forward(self, x):
        # x shape (batch, time_step, input_size)
        # r_out shape (batch, time_step, output_size)
        # h_n shape (n_layers, batch, hidden_size)
        # h_c shape (n_layers, batch, hidden_size)
        r_out, (h_n, h_c) = self.rnn(x, None)   # None represents zero initial hidden state

        # choose r_out at the last time step
        out = self.out(r_out[:, -1, :])
        return out

二、Pycharm与IDEA中关于当前工作路径的区别

1 区别

在学习相对路径的时候,我们学过相对路径都是相对于当前工作目录而言的,由于Pycharm与IDEA中关于当前工作路径的默认设置有一定区别,所以在相对路径的处理上就会产生不同效果了。

  • PyCharm 中默认的当前工作目录
    在 PyCharm 中,默认情况下,当前工作目录通常会被设置为项目的根目录,但如果你是在运行一个脚本,它可能会选择该脚本所在的目录的上一级作为当前工作目录,或者基于运行/调试配置中的指定设置。

  • IntelliJ IDEA 中默认的当前工作目录
    在 IntelliJ IDEA 中(特别是对于 Java 项目),默认的当前工作目录通常是项目的根目录,而不是源代码目录(如 src)。因此,如果你在 Java 中运行时没有指定路径,它默认会在项目根目录下创建文件。
    简单来说,无论你在IDEA里面多深的位置运行一个JAVA文件,当前工作路径都是最上层的项目根目录,而不会是当前正在运行的java文件的父文件(这是与Pycharm典型的差别)

我们可以用代码来验证这一点:
PyCharm:
在这里插入图片描述
IntelliJ IDEA
在这里插入图片描述
可以看到区别很明显
【注】:Pycharm和IntelliJ IDEA都可以在设置中改变当前工作目录,但我们一般使用默认就可以了,就不要给自己找事情了。

2 Pycharm中使用相对路径

上面这个区别主要影响到的就是相对路径的使用注意在切换语言时
都以相对路径的文件操作为例子吧!
PyCharm:
在这里插入图片描述

3 IDEA中使用相对路径

IntelliJ IDEA
在这里插入图片描述
可以看到给我们干到根目录下面去了,不是在 Study\demo\src\cn\hjblogs\demo下

如果我们非要到Study\demo\src\cn\hjblogs\demo下可以
在这里插入图片描述

三、 pycharm与idea中环境变量的配置与使用

关于这个两款编辑器中环境变量的配置与使用是差不多的。

1 IDEA

在 IntelliJ IDEA 中设置 Environment Variables(环境变量) 是为了在运行或调试 Java 程序时,向程序传递一些动态的配置信息。这些环境变量可以在程序运行时通过 System.getenv() 方法读取,从而实现灵活的配置管理。

  • 为什么要设置环境变量?
    在开发中,有些配置信息(如数据库连接信息、API 密钥、调试模式开关等)不适合直接硬编码在代码中,而是希望通过外部配置动态传入。环境变量是一种常见的方式,它可以让程序在不同的运行环境中(如开发环境、测试环境、生产环境)使用不同的配置,而无需修改代码。

例如下面我们就可以使用环境变量动态的配置数据库的连接信息:

public class Test {

    public static void main(String[] args) {
        String dbUrl = System.getenv("DB_URL");              // 从环境变量中获取数据库连接信息,数据库的url
        String dbUser = System.getenv("DB_USER");            // 从环境变量中获取数据库连接信息, 数据库的用户名
        String dbPassword = System.getenv("DB_PASSWORD");    // 从环境变量中获取数据库连接信息, 数据库的密码

        System.out.println("Connecting to database:");
        System.out.println("URL: " + dbUrl);
        System.out.println("User: " + dbUser);
        System.out.println("Password: " + dbPassword);
    }
}
  • 配置环境变量:
    注意idea中要用 ;分隔
DB_URL=jdbc:mysql://localhost:3306/mydb;DB_USER=root;DB_PASSWORD=secret

在这里插入图片描述
在这里插入图片描述

  • 运行结果:动态的拿到了环境变量中的数据库连接信息
    在这里插入图片描述

2 pycharm

待定

【滤波跟踪】多雷达协同下的多目标跟踪:航迹管理优化与卡尔曼滤波融合策略 本文深入探讨了多雷达协同下的多目标跟踪技术,聚焦于航迹管理优化与卡尔曼滤波融合策略两大核心。通过分析分布式融合架构、航迹关联算法(如匈牙利算法)以及应对非线性与机动目标的扩展卡尔曼滤波(EKF)与无迹卡尔曼滤波(UKF)等方法,旨在解决多源信息融合难题,提升复杂环境下目标跟踪的精度与鲁棒性。 阅读详情

相关推荐

黑马Java第二阶段:JavaWeb(笔记)

黑马Java第二阶段:JavaWeb(笔记)

chen的博客 5661

【Python】Java工程师学Python之常用开发工具

文章目录Idea or PyCharmIdea安装插件创建项目代码规范检测VSCode Idea or PyCharm Idea和PyCharm的区别就是Idea需要安装Python的插件,而PyCharm是专门用来开发Python的工具,Idea在安装插件后基本没啥区别,唯一点就是可能官方的插件没有PyCharm更新得快,Idea由于主要是开发Java的,可能有过多的功能冗余,如果是没有编码经验的Python初学者,建议用PyCharm或VSCode,由于博主是主学Java的,这里就直接用的Idea,通过

猫巳的博客 6824

02-Cesium-实现天地图标记

首先天地图申请token,然后Cesium-实现天地图标记详细说明

m0_62785037的博客 1171

PyCharm 和 IntelliJ IDEA 有什么区别呢

PyCharm 和 IntelliJ IDEA 都是由 JetBrains 开发的集成开发环境(IDE),但它们的目标和用途有所不同。虽然它们都基于相同的 IntelliJ 平台,但它们分别针对不同的编程语言和开发需求进行了优化。

weixin_44594317的博客 5893

【顾邦小讲堂】第十九期 RC Snubber吸收电路详解:抑制MOSFET振铃现象与过冲的设计技巧!

通过RC Snubber电路有效抑制MOSFET DS端的过冲及振铃现象,帮助工程师们在设计中提升电路的稳定性和可靠性

GBupupup的博客 3789

Android 12.0 SystemUI下拉状态栏定制化之隐藏下拉通知栏布局功能实现(二)

在12.0的系统定制化开发中,由于从12.0开始SystemUI下拉状态栏和11.0的变化比较大,所以可以说需要从新分析相关的SystemUI的 布局,然后做分析来实现不同的功能,今天就开始实现关于隐藏SystemUI下拉状态栏中的通知栏布局系列二,去掉下拉状态栏中 通知栏部分 白色的圆角背景

安卓兼职framework和app工程师的博客 1636

Eclipse、IntelliJ IDEA、PyCharm三种IDE的区别

Eclipse、IntelliJ IDEA和PyCharm是三种流行的集成开发环境(IDE),每个都有其特性和优点。1.Eclipse:Eclipse是一款开源的Java IDE,由Eclipse基金会开发。它具有许多功能,包括代码自动完成、调试、源代码控制等。另外,Eclipse有许多插件可以安装,以扩展其功能。它的优点包括免费开源,功能强大且可扩展,具有强大的调试功能,并且使用起来相对简单。然而,它的界面可能相对陈旧,插件管理可能不太方便,有时需要手动安装和配置。

Python栈 2853

11、体内皮质功能的电压敏感染料成像技术

本文详细介绍了电压敏感染料成像(VSDI)技术在体内皮质功能研究中的应用。内容涵盖VSDI的技术起源、作用机制、信号特点与解读局限性,以及其在映射感觉皮质功能区方面的优势。文章对比了VSDI与电极记录和钙成像技术的差异,突出了其在高时空分辨率下监测神经元群体亚阈值活动的独特价值。同时,提供了完整的实验操作流程,包括手术步骤、染料应用、光学系统配置及数据分析方法,并总结了常见问题及其解决方案。随着基因靶向和多模态技术结合的发展,VSDI有望进一步提升信号特异性和空间精度,成为解析大脑网络动态的重要工具。

Apple的专栏 81

python中的super到底是什么

在解释 super 之前,我们先看看__init__是什么。init 字面意思就是初始化,是一个 python 类的构造方法,也叫类的初始化方法。作用是初始化新创建对象的状态。当一个类的对象被创建时,该构造方法会立即并且自动去执行。如下输出helloDemo()这种写法其实把创建实例和初始化实例这两步简化了。d = Demo . __new__(Demo) # 创建一个Demo类的实例 Demo . __init__(d) # 初始化Demo类的实例d。

weixin_44200553的博客 1271

勇闯dify v1.0.0之设置模型供应商。解决:Reached maximum retries (3) for URL https://marketplace.dify.ai/

朋友们,大家好,今天带大家来勇闯dify v1.0.0。为什么叫勇闯呢?我就这么说吧,本来我昨天就想带大家勇闯v1.0.0的。但是dify的marketplace访问不了。公司的网和手机热点都试了,就是访问不了。我们连个模型都没有,还勇闯个球啊,对吧,就搁置了。今天,我赶紧看看这个marketplace好了没。一看,可以了。赶紧写下这篇博客,帮助同志们走出困境。

xiezhipu的博客 4617

RK3568 HDMI输出调试:分辨率切换与EDID解析

厂商信息(Vendor ID)显示器型号(Product ID)支持的分辨率列表色彩特性音频支持情况检查项方法HPD 信号EDID 读取当前模式TMDS 时钟PHY 状态。

小灰灰的博客 1491

IntelliJ Idea 常用快捷键列表

IntelliJ Idea 常用快捷键列表 Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+Insert 生成代码(如get,set方法,构造函数等) Ctrl+E或者Alt+Shift+C 最近更改的代码 Ctrl+R 替换文本 Ctrl+F...

gangsijay888的博客 444

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Python,Pycharm,Anaconda、Idea等的关系与安装过程

1 概述 我将详讲讲述在学Python初期的各种手忙脚乱的问题的解决,通过这些步骤的操作,让你的注意力集中在Python的语法上以及后面利用Python所解决的项目问题上,避免因为安装带来不必要的问题。 2 Python、Pycharm、Anaconda等关系 anaconda 是一个python的发行版,包括了python和很多常见的软件库, 和一个包管理器conda。常见的科学计算类的库都包...

艺术架构 8675

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

为什么pycharm输入print和super等会出现红色波浪线?如何去掉红色波浪线

在服务器安装好Linux、CUDA、Cudnn、Anaconda,在本地电脑远程连接服务器。在python stub中的File name patterns中加入*.pyi就可以了。pycharm编译器中输入print和super等会提示报错。

m0_50434358的博客 2115

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

python中的super关键字

希望本文能对你有所帮助~

weixin_50652063的博客 600

Pycharm快速将引用文件的绝对路径改为相对路径

使用Pycharm时可以从绝对路径快速改为相对路径!1.将鼠标放在被引用文件上出现下列提示,点击更多操作。今天发现了不想手动修改文件路径引用的快速解决方式。2.选择将路径转换为相对路径。

mockingjay__的博客 1743

PyTorch使用技巧3:简单理解nn.Sequential()、super().__init__()、__call__、model.train()、model.eval()和前后传播

一个序列容器,用于搭建神经网络的模块被按照被传入构造器的顺序添加到nn.Sequential()容器中。除此之外,一个包含神经网络模块的OrderedDict也可以被传入nn.Sequential()容器中。利用nn.Sequential()搭建好模型架构,模型前向传播时调用forward()方法,模型接收的输入首先被传入nn.Sequential()包含的第一个网络模块中。然后,第一个网络模块的输出传入第二个网络模块作为输入,按照顺序依次计算并传播,直到nn.Sequential()里的最后一个模块输出结

源代码杀手的博客 3214

用人话讲计算机:Python篇!(十一)相对路径与绝对路径

标准解释:绝对路径完整路径,从根目录开始,可以唯一标识文件或目录。相对路径相对于当前工作目录的路径,依赖于程序运行时的当前目录。

2301_81711570的博客 2094

python idea pycharm 区别_python与pycharm的爱恨情仇

首先大家应该区别 这两者是什么?python 是一门语言pycharm 是工具还得交待的是 可以编译python的工具 不止这一款 比如说--eclipse idea ... eclipse中需要对python插件进行安装 才可以很好的支持python1.大家在python的安装目录下 需要注意一下几个 目录是用来干什么 这样可以很好对命令 和需要安装扩展件位置有个很好的认识需要粘贴 pytho...

weixin_39599454的博客 3100

python中的类与继承

为什么要使用面向对象? 初学时认为函数就可以满足功能的实现,没必要使用面向对象,随着日常需求的增长和代码量的增多,发现面向对象确实太有必要了。否则代码管理很费劲,变更容易

weixin_41798111的博客 357

2、初步接触python解释器和idea

python解释器 python能够跨平台,得益于python解释器;可根据不同的操作系统来下载对应的python解释器 python2和python3语法结构上有较大差异,所以python3更新的同时python2也是在更新的 注意事项: 解释器安装后需要设置相应的环境变量,python解释器允许多版本共存。 pycharm创建项目时注意事项 pycharm的安装很简单,这里就不再赘述 为了项目之间不影响,需要在创建项目的时候创建venv环境,相当于复制了一份解释器 运行python代码的两种方式 交互式

qq_42216071的博客 440

pycharm中相对路径的问题,解惑attempted relative import with no known parent package以及超出了顶层package进行相对导入问题

解惑python文件中相对路径的使用问题

qq_49189301的博客 2518

Pycharm相对路径

问题: 今天有个程序,明显路径是存在的,但是os.path.exists的返回结果是False. 仔细想了想, 是相对路径的问题. 情况描述: 我的路径是: dir_path = 'data/market1501/Market-1501-v15.09.15/bounding_box_train' 项目结构是: 当前程序路径pwd在market1501.py, 想要访问aim路径mar...

dc90000的博客 3474

Pycharm、Python、IDEA软件推荐及其安装步骤

Pycharm、Python、IDEA软件推荐及其安装步骤

再中二也会被现实打败 684
上一篇: 5 Java面向对象- 代码块、static、final、类、方法、继承、多态、权限修饰符、接口、内部类、抽象类和抽象方法
下一篇: Anaconda基本命令
JU HE
博客等级 码龄7年 1292粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值