acips 发布于七月 8 分享 发布于七月 8 · 只看该作者 语言是python。非科班出身,也没有系统学过计算机。起初第一次接触编程还是为了减少工作量(解放生产力),找了一圈发现python这种不用编译还能随便拉库来用的挺适合我。断断续续写了不少小工具,什么批量转格式改后缀改编码,都是十几或几十行代码的独立小脚本。 然后为了进一步减少工作量(怠惰是原罪),开始追求更完善的自动化,代码长度逐渐变得更多了(超过300行就挺难受了)。于是向gpt请教代码分类管理和模块化,把相对封闭/完善的小段代码单独放在其它的python文件里。 最近又遇到新的问题,好几个函数都需要传三四个参数,并且这些参数还总是固定的七八个参数里面的,总感觉模块化之后反而更复杂了(毕竟放在一个文件里作为全局变量就省的传参了)。于是再次向gpt请教,gpt再次抛给我一个炸裂性的概念(对我而言)——用类(class)封装属性和函数。虽然定义看的懵懵懂懂的,给的例子看似浅显但是感觉也挺抽象的。不过不妨碍我拿来用,这下大大优化了我的项目,不得不说gpt真是最好的的老师。 目前我的学习进度就这么多了, 或许以后还会学到更多的东西( 希望有计算机高手坛友给点锐评,让我少走点弯路(但是不想系统性学习)。最后放个gpt给的例子: (虽然全文一直在说gpt,其实我用的是deepseek和claude-3.5-s) 引用 类的基本结构 一个类通常包含以下几个部分: 属性(Attributes):类的数据成员,用于存储对象的状态。 方法(Methods):类的函数成员,用于定义对象的行为。 构造函数(Constructor):一种特殊的方法,用于初始化新创建的对象。 析构函数(Destructor):一种特殊的方法,用于在对象被销毁时执行清理操作。 定义一个类 以下是一个简单的Python类的例子: class Dog: # 类属性 species = "Canis familiaris" # 构造函数 def __init__(self, name, age): # 实例属性 self.name = name self.age = age # 实例方法 def description(self): return f"{self.name} is {self.age} years old." def speak(self, sound): return f"{self.name} says {sound}" 创建对象(实例化) 使用类创建对象的过程称为实例化。实例化一个类时,会调用类的构造函数来初始化对象。 my_dog = Dog("Buddy", 3) print(my_dog.description()) # 输出: Buddy is 3 years old. print(my_dog.speak("Woof Woof")) # 输出: Buddy says Woof Woof 类的优点 封装(Encapsulation):将数据和操作数据的方法封装在一起,提高了代码的模块性和可维护性。 继承(Inheritance):允许一个类继承另一个类的属性和方法,促进了代码的重用。 多态(Polymorphism):允许不同类的对象通过相同的接口调用,提高了代码的灵活性。 使用类的场景 类适用于需要创建多个具有相似属性和行为的对象的场景。例如,在一个学生管理系统中,可以定义一个 Student 类,每个学生对象都有姓名、年龄、成绩等属性,以及注册课程、查看成绩等方法。 通过使用类,可以将复杂的问题分解成更小、更易于管理的部分,从而提高代码的可读性和可维护性。 1 链接到点评
starr 发布于七月 8 分享 发布于七月 8 · 只看该作者 以前学过一些单片机的编程,感觉对于非科班的人来说用啥学啥就好,编程要用的函数和会根据工作对象和预期目标有很大差别。真想学的话就把基础的比如迭代循环指针(不知道python有没有)按教科书讲的搞明白,剩下的很多库函数只需要用到的时候再认识它们的用法即可。然后让ChatGpt按照你提供的工作内容和优化方向给一段码农常用代码模板就好 链接到点评
acips 发布于七月 9 作者 分享 发布于七月 9 · 只看该作者 8 小时前,starr说道: 以前学过一些单片机的编程,感觉对于非科班的人来说用啥学啥就好,编程要用的函数和会根据工作对象和预期目标有很大差别。真想学的话就把基础的比如迭代循环指针(不知道python有没有)按教科书讲的搞明白,剩下的很多库函数只需要用到的时候再认识它们的用法即可。然后让ChatGpt按照你提供的工作内容和优化方向给一段码农常用代码模板就好 py不算底层语言我还没怎么接触过指针,不过for while循环还是会的。gpt最大的帮助其实是告诉我各种库/函数的用法,代码最核心的逻辑还是得自己慢慢构思(真的头秃), 还有看过很多大佬的python项目,越发觉得自己写的就是一坨( 8 小时前,光之凌志说道: 先天编程牛马圣体,等你什么时候py配置环境配了一下午就不会这么想了 之前用gradle还真配了好几天的环境,刚开始甚至卡在网络这一关,梯子开全局,换http/socks,甚至换了好几家机场都没用项目也是六七年没更新的,gradle,gradle插件,jdk,as版本怎么搭配都不对,最后突发奇想全部换成当年主流的版本才成功 链接到点评
豚腸小僧 发布于七月 16 分享 发布于七月 16 · 只看该作者 感觉有明确应用目的时候,学编程就水到渠成。硬啃反倒啃不进去。 豚腸小僧在诱导萌新女装时被路过的随便拦下,被批评教育并收取学费-3节操 链接到点评
367ddd 发布于七月 16 分享 发布于七月 16 · 只看该作者 于 2024/7/8 于 PM3点24分,acips说道: 不想系统性学习 如果阁下想要长期编程来实现自己的目标的话,肯定是要系统性学习的,如果只是要完成当前手头的一两个目标直接找ai就行了,ai现在的编程力确实够强。 于 2024/7/8 于 PM3点24分,acips说道: 用类(class)封装属性和函数 顺便恭喜阁下从面向过程编程进化到了面向对象编程 链接到点评
missalot 发布于七月 19 分享 发布于七月 19 · 只看该作者 推荐使用VS2022+github copilot插件 每月10美金即可解放大脑,无脑相信AI的写法就完事了,除非跑出来有问题。 话说我就写过一两个项目的python,这玩意最让我头痛的就是你删几行代码马上整个文件就开始报错,这时候智能提示就失效了,你大概率需要重开IDE才能恢复正常 话说面向对象编程的话类不是应该是很早就会接触到的概念吗……你就把你要处理的业务想象成一个抽象的实体,然后这个实体需要有哪些行为就封装成一个函数,比如一个Human类有Eat(){} Drink(){}方法,他有哪些属性就定义哪些成员变量,比如age, heigth, weight什么的。不过说起来如果只是编写小工具其实根本不需要学什么编程基础。 链接到点评
推荐贴