翼度科技»论坛 编程开发 python 查看内容

Python基础(3)

2

主题

2

帖子

6

积分

新手上路

Rank: 1

积分
6
面向对象编程

根据类来创建对象称为实例化。这里只过一下大概的面向对象的内容,不做细讲。可以直接查阅资料。https://www.runoob.com/python3/python3-class.html
创建和使用类及实例

给出一个类的使用例子:
  1. class Dog:
  2.     def __init__(self, name, age):
  3.         self.name = name
  4.         self.age = age
  5.         
  6.     def sit(self):
  7.         printf(f"{self.name} is now sittig.")
  8.         
  9.           def roll_over(self)
  10.                 print(f"{self.name} rolled over!")
  11.         
  12. my_dog = Dog("willie", 6)        #实例化一个对象
复制代码
注意:__init__() 是一个特殊的方法,当类创建一个新的实例时,会自动运行该方法。类似于C++里的构造函数。而self是指向实例本身的引用。每个函数默认第一个参数都是self。每个与实例相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。以 self 为前缀的变量可供类中的所有方法使用,可以通过类的任何实例来访问。
继承

在既有类的基础上编写新类时,通常要调用父类方法__init()__。这将初始化在父类__init()__ 方法中定义的所有属性,从而让子类包含这些属性。给出一个例子:
动物基类代码:
  1. class Animal:
  2.     def __init__(self, ptype, sound, color):
  3.         self.ptype = ptype
  4.         self.sound = sound
  5.         self.color = color
  6.         
  7.         def get_sound(self):
  8.         print(f"这只{self.ptype}的叫声是{self.sound}")
  9.    
  10.     def get_color(self):
  11.         print(f"这只{self.ptype}的颜色是{self.color}")
  12.         
复制代码
狗派生类实现代码:
  1. class Dog(Animal): #子类继承父类,是需要将父类放在子类括号中
  2.     def __init__(self, ptype, sound, color):
  3.         #初始化父类属性
  4.         super().__init__(ptype, sound, color) #特殊方法,可以在子类中调用父类方法
  5.         
  6.     def get_sound(self):
  7.         print(f"这只{self.ptype}它竟然不叫")
  8.         
  9. my_tesla = Dog("狗", "汪汪汪", "黑色")
  10. my_tesla.get_color()
  11. my_tesla.get_sound()
复制代码
对于父类的方法,只要它不符合子类模拟的实物的行为,都可以进行重写。为此,可在子类中定义一个与要重写的父类方法同名的方法。这样,Python将不会考虑这个父类方法,而只关注在子类中定义的相应的方法。
导入模块

在 python 用 import 或者 from...import 来导入相应的模块。
将整个模块(Allmodule)导入,格式为: import Allmodule
从某个模块中导入某个函数,格式为: from  Allmodule import somefunction
从某个模块中导入多个函数,格式为: from  Allmodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from  Allmodule import *
使用别名导入函数,格式为: from  Allmodule import firstfunc as Func
Python标准库

https://pymotw.com/3/
文件读取数据

读取整个文件

先给出一个例子,对这个例子进行解释分析。读取一个文件,内容是圆周率的后30位的数值,且在小数点后每10位处换行。
  1. with open("pi_digits.txt") as file_object:
  2.     contents = file_object.read()
  3. print(contents)
  4. #文件内容
  5. /*
  6. 3.1415926535
  7.   8979323846
  8.   2643383279
  9. */
复制代码

  • open() 在当前目录下查找指定文件。返回一个对象,用as对这个返回值起别名为 file_object
  • 关键字 with 在不再需要访问文件后将其文件对象进行关闭
  • 文件对象调用read()方法读取文件内容,当到达文件末尾时返回一个空字符串,而将这个空字符串显示出来就是一个空行
注意:可以调用 open() 和 close() 来打开和关闭文件,但这样做时,如果程序存在bug导致方法 close() 未执行,文件将不会关闭。所以使用上面的结构读取文件时,Python会在合适的时候自动将其关闭。
删除多余的空行可以使用  rstrip()   contents.rstrip()
对了open函数里既可以填写绝对路径和相对路径,这点就不说了,简单。不懂上网查。
逐行读取文件
  1. filename = "pi_digits.txt"
  2. with open(filename) as file_object:
  3.     for line in file_object:
  4.         print(line.rstrip())
复制代码
注意:文件中每一行的末尾都是有一个换行符的。因此要对读取的每一行字符串内容进行删除多余的空白行,使用 rstrip()
创建一个包含文件各行内容的列表:
readlines() 从文件中读取每一行,并将其存储在一个列表中
  1. filename = "pi_digits.txt"
  2. with open(filename) as file_object:
  3.     lines = file_object.readlines()
  4. for line in lines:
  5.     print(line.rstirp())
复制代码
使用文件内容组成完整字符串:
  1. filename = "pi_digits.txt"
  2. with open(filename) as file_object:
  3.     lines = file_object.readlines()
  4. pi_string = ""
  5. for line in lines:
  6.     pi_string += line.rstrip()
  7.    
  8. print(pi_string)        # 结果为 3.1415926535 8979323846 2643383279
  9. print(len(pi_string))        # 32
复制代码
由于pi_string指向的字符串包含原来位于每行左边的空格,为删除这些空格,可使用 strip()
读取文本文件时,Python将其中的所有文本都解读为字符串。

来源:https://www.cnblogs.com/BrokenSnow/p/17563607.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具