zoukankan      html  css  js  c++  java
  • Python入门学习笔记7:面向对象

     1.entity1.py

     1 class Human():
     2     sum = 0
     3 
     4     def __init__(self,name,age):
     5         self.name = name
     6         self.age = age
     7 
     8     def get_name(self):
     9         print('get_name:',self.name)
    10 
    11     def do_homework(self):
    12         print('This is a parent method')

    2.entity.py

      1 """
      2 ~~~~~面向对象~~~~~
      3 有意义的面向对象代码
      4 类 = 面向对象
      5 类、对象
      6 实例化(无需new):表现形式为:   类名()
      7 类基本作用:封装、类只负责定义描述属性与函数(不能直接在类内部调用类的函数)
      8 类里面的函数的参数
      9 
     10 类:是现实世界或思维世界中的实体在计算机中的反映(事物属性)
     11 它将数据以及这些数据上的操作封装在一起(方法/函数)
     12 
     13 面向对象三大特性:继承性、封装性、多态性
     14 """
     15 from entity1 import Human
     16 
     17 """
     18 继承
     19 类后的括号中的参数若为类时,则括号中的类为当前类的父类
     20 子类方法与父类方法同名时,调用时会默认子类方法
     21 """
     22 
     23 class Student(Human):
     24     # 类变量
     25     #sum = 0
     26     # name = 'qiyue'
     27     # age = 0
     28 
     29     #构造函数(当实例化该类时自动化运行构造函数,return只能返回none其他返回报错)
     30     #初始化对象的属性
     31     #实例方法参数默认为self(也可改成其他),但调用实例方法时不需要对self实例传参
     32 
     33     def __init__(self,school,name,age):
     34         self.school = school
     35         super(Student,self).__init__(name,age)
     36         #Human.__init__(self,name,age)
     37         #实例变量
     38         """
     39         self.name = name
     40         self.age = age
     41         self.score = 0
     42         print('__init__',name,age)
     43         self.__class__.sum += 1
     44         print("当前班级学生总数为:" + str(self.__class__.sum))
     45         print(self.__dict__) #字典
     46         """
     47     #仅在方法名或变量前加 __ 时,表示该方法或变量私有化  私有变量的自动调用 _类名__变量    公开的 public 私有的 private
     48     def marking(self,score):  #__marking(self,score):
     49         if score < 0:
     50             return '不能打负分'
     51         self.score = score
     52         print(self.name + '同学本次考试分数为:' + str(self.score))
     53 
     54     #行为 与 特征
     55     def do_homework(self):
     56         self.do_english_homework()
     57         super(Student, self).do_homework()
     58         print('子类:do_homework')
     59         return 'homework'
     60 
     61     def do_english_homework(self):
     62         print("do_english_homework")
     63 
     64     #类方法  可以被类和对象调用
     65     @classmethod
     66     def plus_sum(cls):
     67         cls.sum += 1
     68         print("plus_sum:",cls.sum)
     69         print(cls.name)
     70         pass
     71 
     72     #静态方法(无传入类)  可以被类和对象调用
     73     @staticmethod
     74     def add(x,y):
     75         print(Student.sum)
     76         print('This is a static method')
     77 # class Printer():
     78 #     name = ''
     79 #     age = 0
     80 #
     81 #     def print_file(self):
     82 #         print('name:' + self.name)
     83 #         print('age:' + str(self.age))
     84 
     85 
     86 class StudentHomework():
     87     homework_name = ''
     88 
     89 
     90 #student = Student()
     91 # printer = Printer()
     92 # printer.print_file()
     93 #print(student.age,student.do_homework())
     94 """
     95 方法 和 函数的区别
     96 C、C++称为函数,Java、C#称为方法
     97 方法:设计层面
     98 函数:程序运行、过程式的一种称谓
     99 """
    100 
    101 
    102 #实例化应用
    103 """
    104 student1 = Student('晓明',18)
    105 Student.plus_sum()
    106 student1.plus_sum()
    107 student1.add(1,2)
    108 Student.add(2,1)
    109 student2 = Student('晓红',19)
    110 Student.plus_sum()
    111 result = student1.marking(-1)
    112 print(result)
    113 print(student1.name)
    114 print(student2.name)
    115 print(Student.name)
    116 print(student1.__dict__)
    117 print(Student.__dict__)
    118 print(Student.sum)
    119 print(student1.sum)
    120 print(student1.__class__.sum)
    121 student1.do_homework()
    122 student1.score = -1
    123 student1.__score = -2
    124 print(student1.__dict__)
    125 """
    126 # a = student1.__init__()
    127 # print(a,type(a))
    128 # student2 = Student()
    129 # student3 = Student()
    130 #print(id(student1),id(student2),id(student3))
    131 
    132 
    133 #面向对象三大特性:继承性、封装性、多态性
    134 """
    135 student1 = Student('晓明',20)
    136 print(student1.sum)
    137 print(Student.sum)
    138 print(student1.name)
    139 print(student1.age)
    140 student1.get_name()
    141 """
    142 student1 = Student("清华大学",'晓明',20)
    143 print(student1.__dict__)
    144 student1.do_homework()
  • 相关阅读:
    关联A850刷机包 高级电源 时间中心 优化 ROOT 动力 美化 简化
    CodeForces 425E Sereja and Sets
    int有符号和无符号类型内存 -- C
    软件体系结构————防御性编程
    Hibernate各保存方法之间的差 (save,persist,update,saveOrUpdte,merge,flush,lock)等一下
    椭圆识别
    UVa 10223
    照片详细解释YUV420数据格式
    LeetCode:Reverse Integer
    看了此文你还不懂傅里叶变换,那就来掐我吧
  • 原文地址:https://www.cnblogs.com/liuxiaoming123/p/13215781.html
Copyright © 2011-2022 走看看