python创建类的方法实例

Python013

python创建类的方法实例,第1张

创建一个学生类:

数据:(姓名,姓别,年龄 ,分数)

形为:打印信息

'''

class Studons:

def __init__(self,name,xibie,nianling,fenshu):

self.name=name

self.xibie=xibie

self.nianling=nianling

self.fenshu=fenshu

def dayin(self):

print("姓名:%s,性别:%s,年龄:%d,分数:%d"%(self.name,self.xibie,self.nianling,self.fenshu))

list_stud_xi=[]

while True:

qr=input("y继续,n退出")

if qr=="y":

name=input("请输入学生姓名:")

xingbie = input("请输入学生性别:")

nianli=int(input("请输入学生年龄:"))

fenshu=int(input("请输入学生分数:"))

stu = Studons(name, xingbie, nianli, fenshu)#stu储存的是类变量数据。

list_stud_xi.append(stu)#列表元素是类变量数据。

else:

break

for str in list_stud_xi:

str.dayin()

one=list_stud_xi[0]

one.dayin()

one.name="李刚"

one.fenshu=78

print(one.name,one.fenshu)

创建一个宠物 Pet 类,根据该类创建的每个实例都将存储名字和物种,赋予每个宠物吃饭(eat())和睡觉(sleep())的能力:

根据类创建实例

调用方法

给上面的例子进行补充,设置一个宠物到家的初始时间默认值为 0,对某个属性设定默认值可以不提供形参。

调用一下read_time()

增加一个 update_time() 的方法,指定初始时间

调用

新增一个 increment_time() 方法,表示较初始值而言增加的时间

调用

一个类继承另一个类时,它将自动获得另一个类的所有属性和方法;原有的类称为父类,而新类称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。

创建一个 Cat 类,继承 Pet 的属性,同时可以定义 Cat 特有的属性。

调用

如果子类中的某些属性与父类不一样,可以在子类新建方法重新定义来改写父类。

类的导入和函数的导入相同。

取消

首页

编程

手机

软件

硬件

安卓

苹果

手游

教程

平面

服务器

首页 >脚本专栏 >python >python 花卉识别系统

用python搭建一个花卉识别系统

2021-06-19 15:31:19 作者:python研究者

这学期修了一门机器视觉的选修课,课设要是弄一个花卉识别的神经网络,所以我网上找了开源代码进行了修改,最后成功跑起来,结果只有一个准确率(94%)既然都跑了这个神经网络的代码,那么干脆就把这个神经网络真正的使用起来,把这个神经网络弄成一个可视化界面

一.开源神经网络(AlexNet)

1.获取数据集

使用步骤如下:

* (1)在data_set文件夹下创建新文件夹"flower_data"

* (2)点击链接下载花分类数据集download.tensorflow.org/example\_im…

* (3)解压数据集到flower_data文件夹下

* (4)执行"split_data.py"脚本自动将数据集划分成训练集train和验证集val

split_data.py

import os

from shutil import copy, rmtree

import random

def mk_file(file_path: str):

if os.path.exists(file_path):

# 如果文件夹存在,则先删除原文件夹在重新创建

rmtree(file_path)

os.makedirs(file_path)

def main():

# 保证随机可复现

random.seed(0)

# 将数据集中10%的数据划分到验证集中

split_rate = 0.1

# 指向你解压后的flower_photos文件夹

cwd = os.getcwd()

data_root = os.path.join(cwd, "flower_data")

origin_flower_path = os.path.join(data_root, "flower_photos")

assert os.path.exists(origin_flower_path)

flower_class = [cla for cla in os.listdir(origin_flower_path)

if os.path.isdir(os.path.join(origin_flower_path, cla))]

# 建立保存训练集的文件夹

train_root = os.path.join(data_root, "train")

mk_file(train_root)

for cla in flower_class:

# 建立每个类别对应的文件夹

mk_file(os.path.join(train_root, cla))

# 建立保存验证集的文件夹

val_root = os.path.join(data_root, "val")

mk_file(val_root)

for cla in flower_class:

# 建立每个类别对应的文件夹

mk_file(os.path.join(val_root, cla))

for cla in flower_class:

cla_path = os.path.join(origin_flower_path, cla)

images = os.listdir(cla_path)

num = len(images)

# 随机采样验证集的索引

eval_index = random.sample(images, k=int(num*split_rate))

for index, image in enumerate(images):

if image in eval_index:

# 将分配至验证集中的文件复制到相应目录

image_path = os.path.join(cla_path, image)

new_path = os.path.join(val_root, cla)

copy(image_path, new_path)

else:

# 将分配至训练集中的文件复制到相应目录

image_path = os.path.join(cla_path, image)

new_path = os.path.join(train_root, cla)

copy(image_path, new_path)

print("\r[{}] processing [{}/{}]".format(cla, index+1, num), end="") # processing bar

print()

print("processing done!")

if __name__ == '__main__':

main()