都市菜单详解,面向对象详解

作者: 韦德国际1946手机版  发布:2019-09-03

Python 城市菜单详解(超详解),python详解

  print("--------城市查询系统---------")
print("--------按数值举办询问--------")
menu={"内蒙古":{"赤峰市":["赤峰1","赤峰2","赤峰3"],"锡盟":["锡盟1","锡盟2","锡盟3"]},
      "上海":{"青浦":["青浦1","青浦2","青浦3"],"黄埔":["黄埔1","黄埔2","黄埔3"]},
      "山东":{"胶州":["胶州1","胶州2","胶州3"],"济南":["济南1","济南2","济南3"]},
      "河南":{"开封":["河南1","河南2","河南3"],"郑州":["郑州","郑州2","郑州3"]}
      }
flag=True
count = 0
while (flag):
    for i,v in enumerate(menu.keys()):
        print("--->",i,v)                                #打字与印刷出第一层key value          
    choice_1=input("请输入相应数字,按q退出:--->").strip() #收到键盘输入 .strip()前后空格都没了
    if choice_1=='q':                                      #决断是还是不是q是就退出  
        flag=False
        break
    if choice_1.isdigit():                                 #分明输入的是数字
        num=int(choice_1)                                  #是输入的为整形数字
        if num<len(menu):                                  #判断输入的数字是还是不是低于字典里键成分个数
            m=list(menu.keys())                            #把字典中的键植入列表中
            key_1=m[num]                                   #取列表里的值m[0],m[1],m[...]
            print(key_1)
            while(flag):                                   #有备无患步入第二层菜单
                for i1,v1 in enumerate(menu[key_1]):       #打字与印刷出第二层菜单
                    print("--->",i1,v1)                    #打字与印刷出第二层
                choice_2=input("再次来到上一层:b 退出:q 请输入相应数字:").strip()#接受新闻步向第三层
                if choice_2.isdigit():
                    num_2=int(choice_2)
都市菜单详解,面向对象详解。                    n=list(menu[key_1].keys())          
                    key_2=n[num_2]
                    while(flag):
                        for i2,v2 in enumerate(menu[key_1][key_2]):#打字与印刷第二层菜单的音信
                            print("--->",i2,v2)
                        print("查询达成!!!!")
                        choice=input("再次来到上一层:b 退出:q-->")
                        if choice=='b':
                            break
                        elif choice=='q':
                            flag=False
                elif  choice_2=='b':
                    break
                elif  choice_2=='q':
                    flag=False
        else:
            print("****请输入规定限制的数字*****")

    else:
        print("****请输入数字****")                  

城市菜单详解(超详解),python详解 print("--------城市查询系统---------") print("--------按数值进行查询--------") menu={"内蒙古":{"三明市":[...

Python之三层菜单,python三层

三层菜单,依据客商所选数字,步向子菜单。顶级超级显示。 图片 1 1 menu = { 2 'Beijing': { 3 "ChaoYang": { 4 "CBD": ['CICC', 'CCTV'], 5 "JinRongJie": ["CT"], 6 "Wangjing": ["Momo", "ChuiZI"] 7 }, 8 "HaiDian": ['Baidu', 'Youku'] 9 }, 10 'Shanghai': { 11 "PuDong": ["Ctrip", "One Shop"], 12 "PuXi": ["China Bank", "America Bank"] 13 } 14 } 15 exit_flag = False 16 while not exit_flag: 17 for index, key in enumerate(menu.keys()): 18 print(index, key) 19 choice_1 = input("Please choose menu to enter:").strip() 20 if choice_1.isdigit(): 21 choice_1 = int(choice_1) 22 23 key_1 = list(menu.keys())[choice_1] 24 while not exit_flag: 25 for index, key in enumerate(menu[key_1]): 26 print('-->', index, key) 27 choice_2 = input("Please choose menu to enter:").strip() 28 if choice_2.isdigit(): 29 choice_2 = int(choice_2) 30 31 key_2 = list(menu[key_1].keys())[choice_2] 32 while not exit_flag: 33 for index, key in enumerate(menu[key_1][key_2]): 34 print('-->-->', index, key) 35 choice_3 = input("Please choose menu to enter:").strip() 36 if choice_3.isdigit(): 37 print("This is the last level...") 38 elif choice_3 == 'quit': 39 exit_flag = True 40 elif choice_3 == 'back': 41 break 42 else: 43 print("====Going to quit==== ") View Code

 注:此版本为Python3.0版本

三层菜单,遵照顾客所选数字,步向子菜单。一流一级呈现。 1 menu = { 2 ' Beijing ' : { 3 " ChaoYang " : { 4 " CBD " : [...

Python类定义和类承接详解,python详解

一、类定义:

class <类名>:
  <语句>

类实例化后,能够应用其脾性,实际上,创制三个类之后,能够因而类名访问其性质
若是直接运用类名修改其属性,那么将一贯影响到曾经实例化的对象
 
类的民用属性: __private_attrs  多个下划线起始,表明该属性为个体,无法在类地外界被选择或直接访问
在类内部的不二诀要中央银行使时 self.__private_attrs
 
 类的办法
在类地内部,使用def关键字可以为类定义三个艺术,与一般函数定义分化,类格局必需包括参数self,且为第多少个参数
 
 
民用的类措施
__private_method 五个下划线开端,评释该措施为私家方法,无法在类地外界调用
在类的内部调用slef.__private_methods
类的专有方法: __init__  构造函数,在扭转对象时调用
__del__   析构函数,释放对象时利用
__repr__ 打印,转换
__setitem__听从索引赋值
__getitem__规行矩步索引获取值
__len__收获长度
__cmp__正如运算
__call__函数调用
 
__add__加运算
__sub__减运算
__mul__乘运算
__div__除运算
__mod__求余运算
__pow__称方
示例:

#类定义 
class people: 
  #定义基本属性 
  name = '' 
  age = 0 
  #定义私有属性,私有属性在类外部无法直接进行访问 
  __weight = 0 
  #定义构造方法 
  def __init__(self,n,a,w): 
    self.name = n 
    self.age = a 
    self.__weight = w 
  def speak(self): 
    print("%s is speaking: I am %d years old" %(self.name,self.age)) 


p = people('tom',10,30) 
p.speak() 

二、承袭类定义:

1.单继承

class <类名>(父类名)
  <语句>
eg.
class childbook(book)
  age = 10

2.类的俯拾便是承继

class 类名(父类1,父类2,....,父类n)
   <语句1>

亟待潜心圆括号中父类的相继,假如父类中有一样的不二等秘书技名,而在子类使用时未钦定,python从左至右搜索,即方法在子类中未找到时,从左到右查找父类中是或不是包含方法

#另一个类,多重继承之前的准备 
class speaker(): 
  topic = '' 
  name = '' 
  def __init__(self,n,t): 
    self.name = n 
    self.topic = t 
  def speak(self): 
    print("I am %s,I am a speaker!My topic is %s"%(self.name,self.topic)) 

#多重继承 
class sample(speaker,student): 
  a ='' 
  def __init__(self,n,a,w,g,t): 
    student.__init__(self,n,a,w,g) 
    speaker.__init__(self,n,t) 

test = sample("Tim",25,80,4,"Python") 
test.speak()#方法名同,默认调用的是在括号中排前地父类的方法 

类措施的覆写——子类覆盖掉父类的主意
def 方法名与父类一致
若是在点子中要采纳到父类方法 父类名.方法名
 
万一将类放到了模块中
 
使用时

import A
l = A.类()

如上三段程序的推行结果:

图片 2

一、类定义: class 类名: 语句 类实例化后,可以使用其性质,实际上,创设一个类之后,可以经过类...

Python 面向对象详解,python面向对象详解

Python从规划之初就已经是一门面向对象的语言,正因为这么,在Python中创建四个类和目的是很轻巧的。本章节大家将详细介绍Python的面向对象编制程序。

假设您此前并未有接触过面向对象的编制程序语言,那你大概须求先掌握一些面向对象语言的有的基本特征,在脑子里头产生三个基本的面向对象的定义,这样有利于你更便于的学习Python的面向对象编制程序。

接下去大家先来简单的垂询上边向对象的有些基本特征。


面向对象手艺简要介绍

  • 类(Class): 用来汇报具有同样的性质和措施的指标的集结。它定义了该集结中各种对象所共有的天性和格局。对象是类的实例。
  • 类变量:类变量在全方位实例化的指标中是公用的。类变量定义在类中且在函数体之外。类变量日常不作为实例变量使用。
  • 多少成员:类变量只怕实例变量用于管理类及其实例对象的连锁的数据。
  • 办法重写:要是从父类承袭的点子不可能知足子类的供给,能够对其举办改写,这么些进度叫方法的掩饰(override),也堪当方法的重写。
  • 实例变量:概念在艺术中的变量,只服从于近些日子实例的类。
  • 继承:即三个派生类(derived class)承袭基类(base class)的字段和措施。承袭也同意把叁个派生类的指标作为三个基类对象比较。举个例子,有诸如此比一个设计:三个Dog类型的对象派生自Animal类,这是未有主见只会顺风张帆"是一个(is-a)"关系(例图,Dog是一个Animal)。
  • 实例化:创建二个类的实例,类的切实可行目的。
  • 方法:类中定义的函数。
  • 对象:通过类定义的数据结构实例。对象包罗七个数据成员(类变量和实例变量)和方法。

创建类

行使class语句来创制三个新类,class之后为类的称呼并以冒号结尾,如下实例:

class ClassName:
   '类的帮助信息'   #类文档字符串
   class_suite  #类体

类的帮助新闻方可经过ClassName.__doc__查看。

class_suite 由类成员,方法,数据属性组成。

实例

以下是二个简练的Python类实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

class Employee:
   '所有员工的基类'
   empCount = 0

   def __init__(self, name, salary):
      self.name = name
      self.salary = salary
      Employee.empCount  = 1

   def displayCount(self):
     print "Total Employee %d" % Employee.empCount

   def displayEmployee(self):
      print "Name : ", self.name,  ", Salary: ", self.salary
  • empCount 变量是三个类变量,它的值将要这么些类的兼具实例之间分享。你能够在里边类或外界类使用 Employee.empCount 访问。

  • 先是种情势__init__()方法是一种非常的主意,被称为类的构造函数或初阶化方法,当创制了那一个类的实例时就能够调用该办法

  • self 代表类的实例,self 在定义类的格局时是必得有的,纵然在调用时不要传入相应的参数。

self代表类的实例,而非类

类的诀窍与常见的函数独有几个特意的不一样——它们必得有二个特出的首先个参数名称, 遵照规矩它的名号是 self。

class Test:
    def prt(self):
        print(self)
        print(self.__class__)

t = Test()
t.prt()

如上实例执行结果为:

<__main__.Test instance at 0x10d066878>
__main__.Test

从试行结果能够很令人瞩指标收看,self 代表的是类的实例,代表当前指标的地址,而 self.class 则指向类。

self 不是 python 关键字,我们把他换到 runoob 也是能够平常实行的:

class Test:
    def prt(runoob):
        print(runoob)
        print(runoob.__class__)

t = Test()
t.prt()

如上实例推行结果为:

<__main__.Test instance at 0x10d066878>
__main__.Test

本文由韦德国际1946发布于韦德国际1946手机版,转载请注明出处:都市菜单详解,面向对象详解

关键词: 韦德国际