Python高难度代码例子、Python最复杂代码例子
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python高难度代码例子、Python最复杂代码例子相关的知识,希望对你有一定的参考价值。
参考技术A #IT教育# #IT# #程序员# #人工智能#最近学习pytorch,看到下面的Python高难度代码例子和Python最复杂代码例子:
from google.colab import output as colab_output
from base64 import b64decode
from io import BytesIO
from pydub import AudioSegment
RECORD = """
const sleep = time => new Promise(resolve => setTimeout(resolve, time))
const b2text = blob => new Promise(resolve =>
const reader = new FileReader()
reader.onloadend = e => resolve(e.srcElement.result)
reader.readAsDataURL(blob)
)
var record = time => new Promise(async resolve =>
stream = await navigator.mediaDevices.getUserMedia( audio: true )
recorder = new MediaRecorder(stream)
chunks = []
recorder.ondataavailable = e => chunks.push(e.data)
recorder.start()
await sleep(time)
recorder.onstop = async ()=>
blob = new Blob(chunks)
text = await b2text(blob)
resolve(text)
recorder.stop()
)
"""
def record(seconds=1):
display(ipd.Javascript(RECORD))
print(f"Recording started for seconds seconds.")
s = colab_output.eval_js("record(%d)" % (seconds * 1000))
print("Recording ended.")
b = b64decode(s.split(",")[1])
fileformat = "wav"
filename = f"_audio.fileformat"
AudioSegment.from_file(BytesIO(b)).export(filename, format=fileformat)
return torchaudio.load(filename)
waveform, sample_rate = record()
print(f"Predicted: predict(waveform).")
ipd.Audio(waveform.numpy(), rate=sample_rate)
js 的Promise函数对象编程,字符串javascript函数对象,IPython解释js对象,解释结果和python代码结合,IPython Shell显示非字符串数据,python音频使用IPython简单调用。
复杂Python模块下的多知识点结合代码,是Python高难度代码的体现。
Js的Promise理解为动态函数,比C++的类成员函数和全局函数这类静态形式的函数处理灵活,不过初学者理解起来麻烦。代码里sleep和b2text都代表一些处理函数,也就是几行代码,而不是数据。通常来讲,变量一般代表数据,但是这里代表了指令。
Python中的面向对象编程(类编程)由简单到复杂的示例代码
关于本文代码中的self的含义,大家可参考下面这篇博文:
https://blog.csdn.net/wenhao_ir/article/details/125384347
目录
- 01-最简单的Python面向对象编程(类编程)示例代码
- 02-类中的成员函数引用类的成员变量的情况
- 03-带构造函数(初始化函数)的情况
- 04-成员函数带参数(不包括构造函数)
- 05-类的继承(父类与子类)
- 一些与代码规范化相关的建议
01-最简单的Python面向对象编程(类编程)示例代码
class Fruit:
color = 'red'
def taste(self):
return 'delicious'
apple = Fruit()
a_character = apple.color
b_character = apple.taste()
print('\\na_character:'.format(a_character))
print('b_character:'.format(b_character))
运行结果如下图所示:
02-类中的成员函数引用类的成员变量的情况
class Staff: # Staff为员工的意思
bonus = 30000 # bonus为津贴、奖金的意思
def salary(self): # salary为工资的意思
salary = 10000+self.bonus
return salary
zhang_san = Staff()
zhang_san_salray = zhang_san.salary()
运行结果如下所示:
03-带构造函数(初始化函数)的情况
class Staff: # Staff为员工的意思
def __init__(self, bonus): # bonus为津贴、奖金的意思
self.bonus = bonus
def salary(self): # salary为工资的意思
salary = 10000+self.bonus
return salary
zhang_san = Staff(3000)
zhang_san_salray = zhang_san.salary()
运行结果如下:
04-成员函数带参数(不包括构造函数)
class AnimalBaseClass:
def __init__(self, num):
self.animallegs = num
self.head_num = 0
def walk(self):
print('走')
def cry(self):
print('叫')
def get_legs_num(self):
print(self.animallegs)
def input_head_num(self, num2):
self.head_num = num2
def get_head_num(self):
print(self.head_num)
animal = AnimalBaseClass(4)
animal.input_head_num(1)
animal.get_legs_num()
animal.get_head_num()
上面的代码中,成员函数input_head_num()是带了参数的。
运行结果如下:
05-类的继承(父类与子类)
class AnimalBaseClass:
def __init__(self, num):
self.animallegs = num
def walk(self):
print('走')
def cry(self):
print('叫')
def get_legs_num(self):
print(self.animallegs)
class BirdClass(AnimalBaseClass):
head_num = 1
def cry(self):
print('吱吱叫')
def run(self):
print('跑')
def get_head_num(self):
print(self.head_num)
piyo_suke = BirdClass(2)
piyo_suke.cry()
piyo_suke.run()
piyo_suke.get_legs_num()
piyo_suke.get_head_num()
在上面的代码中,类BirdClass继承于类AnimalBaseClass,它拥有类AnimalBaseClass的变量和成员函数。
运行结果如下:
当父类和子类都拥有同样名称的成员函数时,子类调用这个成员函数时会优先调用子类中成员函数,这个功能叫重写(覆盖),英文中的叫法叫“override”所以上面的代码中语句
piyo_suke.cry()
的运行结果为“吱吱叫”,而不是“叫”。
不仅是一般的成员函数能被改写,构造函数也可以在子类中重写,比如下面的代码:
class AnimalBaseClass:
def __init__(self, num):
self.animallegs = num
def walk(self):
print('走')
def cry(self):
print('叫')
def get_legs_num(self):
print(self.animallegs)
class BirdClass(AnimalBaseClass):
def __init__(self, num1, num2):
self.animallegs = num1
self.head_num = num2
def cry(self):
print('吱吱叫')
def run(self):
print('跑')
def get_head_num(self):
print(self.head_num)
piyo_suke = BirdClass(3, 1)
piyo_suke.cry()
piyo_suke.run()
piyo_suke.get_legs_num()
piyo_suke.get_head_num()
上面的代码中,子类BirdClass的构造函数和父类AnimalBaseClass不一样。
运行结果如下:
要注意,你的代码中用到了哪些成员变量,你在构造函数就要注意把它初始化,否则调用时会出错,比如下面这样写就不行:
class BirdClass(AnimalBaseClass):
def __init__(self, num2):
self.head_num = num2
def cry(self):
print('吱吱叫')
def run(self):
print('跑')
def get_head_num(self):
print(self.head_num)
piyo_suke = BirdClass(1)
piyo_suke.cry()
piyo_suke.run()
piyo_suke.get_legs_num()
piyo_suke.get_head_num()
上面的代码中,成员函数get_legs_num()用到了成员变量animallegs,但是没有进行初始化,所以在调用语句piyo_suke.get_legs_num()时会报下面这样的错:
一些与代码规范化相关的建议
在代码的书写格式上注意以下几点(非必须,但是这样书写出来的代码漂亮好看且规范):
- 成员变量与成员函数之间要有一个空行;
- 成员函数与成员函数之间要有一个空行;
- 类与主体代码之间要有两个空行;
- 类与类之间也要有个两个空行;
- 类名用驼峰法命名(关于命名规则,可参考博文 https://blog.csdn.net/wenhao_ir/article/details/123117194);
以上是关于Python高难度代码例子、Python最复杂代码例子的主要内容,如果未能解决你的问题,请参考以下文章