zoukankan      html  css  js  c++  java
  • 009 Python 类

    # Python  类
      ● class 类名(object):
      

      ● 简单类的创建

     1 # -*- coding: UTF-8 -*-
     2 class FirstClass:
     3     """创建一个简单的类"""
     4     nValue = 12345
     5     def outString(self):
     6         return 'hello world'
     7  
     8 # 实例化类
     9 x = FirstClass()
    10  
    11 # 访问类的属性和方法
    12 print("FirstClass 类的属性 i 为:", x.nValue)
    13 print("FirstClass 类的方法 f 输出为:", x.outString())

       ● __init__() 的特殊方法(构造方法)初始化类

     1 # -*- coding: UTF-8 -*-
     2 class FirstClass:
     3     """创建一个简单的类"""
     4     def __init__(sum, x, y):
     5         sum.x = x
     6         sum.y = y
     7     
     8     
     9 Go = FirstClass(9,“HelloWorld”)
    10 print(Go.x, Go.y)

       ● def 定义类函数

     1 # -*- coding: UTF-8 -*-
     2 #类定义
     3 class People:
     4     #定义基本属性
     5     name = ''
     6     age = 0
     7     #定义私有属性,私有属性在类外部无法直接进行访问
     8     __weight = 0
     9     #定义构造方法
    10     def __init__(self,name,age,w):
    11         self.name = name
    12         self.age = age
    13         self.__weight = w
    14     def speak(self):
    15         print("%s 说: 我 %d 岁。" %(self.name,self.age))
    16  
    17 # 实例化类
    18 p = People("☆__夜__☆",23,30)
    19 p.speak()

       ● 类的继承

          class 子类(父类):

     1 #类定义
     2 class people:
     3     #定义基本属性
     4     name = ''
     5     age = 0
     6     #定义私有属性,私有属性在类外部无法直接进行访问
     7     __weight = 0
     8     #定义构造方法
     9     def __init__(self,n,a,w):
    10         self.name = n
    11         self.age = a
    12         self.__weight = w
    13     def speak(self):
    14         print("%s 说: 我 %d 岁。" %(self.name,self.age))
    15  
    16 #单继承示例
    17 class student(people):
    18     grade = ''
    19     def __init__(self,n,a,w,g):
    20         #调用父类的构函
    21         people.__init__(self,n,a,w)
    22         self.grade = g
    23     #覆写父类的方法
    24     def speak(self):
    25         print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))
    26  
    27  
    28  
    29 s = student('☆__夜__☆',23,60,99)
    30 s.speak()

       ● 类的继承

          class 子类(父类1,父类2,父类3):

     1 #类定义
     2 #类定义
     3 class people:
     4     #定义基本属性
     5     name = ''
     6     age = 0
     7     #定义私有属性,私有属性在类外部无法直接进行访问
     8     __weight = 0
     9     #定义构造方法
    10     def __init__(self,n,a,w):
    11         self.name = n
    12         self.age = a
    13         self.__weight = w
    14     def speak(self):
    15         print("%s 说: 我 %d 岁。" %(self.name,self.age))
    16  
    17 #单继承示例
    18 class student(people):
    19     grade = ''
    20     def __init__(self,n,a,w,g):
    21         #调用父类的构函
    22         people.__init__(self,n,a,w)
    23         self.grade = g
    24     #覆写父类的方法
    25     def speak(self):
    26         print("%s 说: 我 %d 岁了,我在读 %d 年级"%(self.name,self.age,self.grade))
    27  
    28 #另一个类,多重继承之前的准备
    29 class job():
    30     topic = ''
    31     name = ''
    32     def __init__(self,n,t):
    33         self.name = n
    34         self.topic = t
    35     def speak(self):
    36         print("我叫 %s,我的工作是%s"%(self.name,self.topic))
    37  
    38 #多重继承
    39 class sample(job,student):
    40     a =''
    41     def __init__(self,n,a,w,g,t):
    42         student.__init__(self,n,a,w,g)
    43         job.__init__(self,n,t)
    44  
    45 test = sample("☆__夜__☆",25,80,4,"IT 码农 T_T")
    46 test.speak()

       ● 子类函数(方法的重写)

          父类方法不能满足需求,可以在子类重写父类的方法。

     1 class Parent:        # 定义父类
     2    def MyFun(self):
     3       print ('正在调用父类函数...........')
     4  
     5 class Child(Parent): # 定义子类
     6    def MyFun(self):
     7       print ('正在调用子类函数...........')
     8  
     9 Son = Child()          # 子类实例
    10 Son.MyFun()         # 子类调用重写方法

    作业详解

     1 # -*- coding: UTF-8 -*-
     2 #poedu_shop.py
     3 import useroperator
     4 def main():
     5     if useroperator.user_login(input("You Name:"),input("You Password:"),"userdata.txt"):
     6         pass
     7     else:
     8         pass
     9     pass
    10 
    11 if __name__ == "__main__":
    12     main()
    13 else:
    14     print("请从poedu_shop.py启动程序")
     1 # -*- coding: UTF-8 -*-
     2 #poedu_file.py
     3 
     4 import os.path
     5     
     6 def get_file_suffix(path):
     7     return os.path.split(path)[1]    #获取文件后缀名
     8 
     9 def __get_file_format_type(file):
    10     suffix = get_file_suffix(file)
    11     if suffix == '.txt':
    12         return 'pickle','wb'
    13     elif suffix == '.json':
    14         return 'json','w'
    15 
    16 def dump_file(file,data): #新建用户名,写入文件
    17 
    18     modulename = __get_file_format_type(file)
    19     if modulename != None:
    20         module = __import__(modulename[0])
    21         with open(file,modulename[1]) as f:
    22             module.dump(data,f)
    23         
    24 
    25 def load_file(file):
    26     try:
    27         modulename == __get_file_format_type(file)
    28         if modulename != None:
    29             module = __import__(modulename)
    30             with open(file,'rb') as f:
    31                 return module.load(f)
    32         else:
    33             print("不支持的格式!")
    34     except:
    35         print("文件不存在!")
    36 
    37 
    38 """
    39 def load_file(file):
    40     #.json .txt
    41     #userdata        c://windows//
    42     if get_file_suffix(file) == '.txt':
    43         module = __import__('pickle')
    44     elif get_file_suffix(file) == '.json':
    45         module = __import__('josn')
    46     else:
    47         print("不支持的文件格式")
    48         return
    49     try:
    50         with open(file,'rb') as f:
    51             return module.load(f)
    52     except:
    53         print("文件不存在")
    54 """
     1 # -*- coding: UTF-8 -*-
     2 #useroperator.py
     3 import poedu_file
     4 all_user_infos = []
     5 def user_new(name,psw,money,salary,file):        #接收参数,新建文件
     6     all_user_infos.append({'name':name,'password':psw,'salary':salary,'money':money})
     7     poedu_file.dump_file(file,all_user_infos)
     8 
     9 def user_login(name, psw, file):
    10     user_datas = poedu_file.load_file(file)
    11     if user_datas == None:
    12         #选择新建
    13         user_new(name,psw,1000,500,file)
    14     else:
    15         for user_info in user_datas:
    16             if name == user_info['name'] and psw == user_info['password']:
    17                 pass
    18     pass
  • 相关阅读:
    一种字段串的拆分
    获取存储过程返回值的几种方式
    使用表值参数(数据库引擎)
    转 Dynamics CRM Alert and Notification JavaScript Methods
    CRM 2016 自定义对话框
    CRM 2016 子表单中N:1关系 字段要求与新建时的关系
    恢复CRM plugin
    CRM Diagnostics CRM 2016 诊断
    [Windows] Visual Studio 2010 快捷键大全
    [Java] Web开发HTTP状态码整理
  • 原文地址:https://www.cnblogs.com/sdk123/p/7236163.html
Copyright © 2011-2022 走看看