编译器:Visual Studio Code
环境:Python 3.9.6
记录学习过程,如有冒犯,不胜荣幸。
#类与对象
#类class
class Test: #class 类名:
num = 10 #类属性
def fun(self): #实例方法
print('Example')
@staticmethod #静态方法
def means(): #通过类名直接调用
return "Static "
@classmethod #类方法
def way(cls): #通过类名直接调用
print("正在使用")
def __init__(self,name,age) : #初始化方法
#self.__为实体属性,即把参数的值赋给实体属性。类似于Java的this
self.name = name
self.age = age
def fun1(self):
print(self.name+"正在调用")
#对象
num_1 = Test("Name",-1) #创建对象(类的实例化)
#对象名 = 类名()
'''
num_1.fun() #调用方法。对象名.方法()
Test.fun(num_1) #用类名调用方法,传入类的对象
'''
'''
print (num_1.means())
print(Test.means()) #通过类名直接调用静态方法
print(Test.num) #调用类属性。 类名.类属性
Test.num = 100 #修改属性值
print(Test.num)
'''
'''
print(id(Test)) #分配内存空间
print(type(Test)) #
print(Test) # 创建了类对象Test
'''
stu_1 = Test("张三",20)
stu_2 = Test("李四",18) #传参至init方法
'''
print(stu_1.name,stu_1.age) # 张三 20
print(stu_2.name,stu_2.age) # 李四 18
stu_1.fun1() # 张三正在调用
stu_2.fun1() # 李四正在调用
'''
#类的继承
class Test_1(Test): #class 类名(父类名,父类名,object)//python支持多继承,共同父类object
def __init__(self, name, age,grade):
super().__init__(name, age) #super().父类方法名()调用被隐藏的方法
self.grade = grade
#子类必须在构造函数中调用父类的构造函数
#方法重写
def fun1(self): #重写Test类的方法fun1()
super().fun1() #输出 王五正在调用
#return super().fun1() # 时,此行后的语句被隐藏
print("方法重写") #输出 方法重写
a = Test_1("王五",18,99)
'''
a.fun1() #调用重写方法fun1()
print(a.__dict__) #特殊属性__dict__,获得对象的属性以字典形式返回
#{'name': '王五', 'age': 18, 'grade': 99}
'''
#模块(.py的文件)
#导入模块 import 模块名称 from 模块名称 import 函数/变量/类
import math #导入系统math模块
print(math.pi) #3.141592653589793
from math import pi #导入math模块的pi
print(pi)
if __name__ == "__main__": #以主程序形式运行,当该模块被其他模块导入时,不执行主程序
pass
#包
#import 包名.模块名
import Package_1.page_1
#包是包含__init__.py文件的目录
#文件读写
#创建文件对象
#对象名 = open(文件名[,mode,encoding]) 打开模式默认为mode只读,文本字符编写格式为gdk
file_1 = open("Data.txt","r") #"r"表示read读取
print(file_1.readlines()) #编码格式ANSI。readline()读取一行,readlines()读取所有行
file_1.close()
file_2 = open("Data_1.txt","w") #"w"表示写入。如果文件不存在,则自动创建;否则覆盖原有内容
file_2.write("Hello World") #write()写入字符串
file_2.close()
file_3 = open("Data_1.txt","a")
file_3.write("\nPyhton")
file_3.close()
#with语句
with open("Data.txt","r") as File:
print(File.read())
#with语句自动管理上下文资源,不需要close()就能确保文件正常关闭
#with open("文件名","打开模式") as 对象名