• Pyhton学习——Day24


    # #面向对象设计:
    # def dog(name,gender,type):
    # def jiao(dog):
    # print('One Dog[%s],wfwfwf'%dog['name'])
    # def walk(dog):
    # print('One Dog[%s] walking ' %dog['name'])
    # def init(name,gender,type):
    # dog1 = {
    # 'name':name,
    # 'gender':gender,
    # 'type':type,
    # 'jiao':jiao,
    # 'walk':walk,
    # }
    # return dog1
    # return init(name,gender,type)
    # d1 = dog('pandaboy','male','big')
    # d2 = dog('pandaboy1','female','small')
    # print(d1)
    # print(d2)
    # d1['jiao'](d1)
    # d2['walk'](d2)
    #########################################################################################################
    # F:PythonPythonLeaningvenvScriptspython.exe F:/Python/PythonLeaning/每日学习打卡/Day24.py
    # {'name': 'pandaboy', 'gender': 'male', 'type': 'big', 'jiao': <function dog.<locals>.jiao at 0x00000000029CA6A8>, 'walk': <function dog.<locals>.walk at 0x00000000029CA730>}
    # {'name': 'pandaboy1', 'gender': 'female', 'type': 'small', 'jiao': <function dog.<locals>.jiao at 0x00000000029CA7B8>, 'walk': <function dog.<locals>.walk at 0x00000000029CA840>}
    # One Dog[pandaboy],wfwfwf
    # One Dog[pandaboy1] walking
    #
    # Process finished with exit code 0
    #######################################################################################################################
    # 类的定义:把一类事物的相同特征和动作整合到一起就是类,类是一个抽象的概念
    # 对象:就是一个具体的事物存在,基于类而创建的一个具体的事物,具体存在的,也就是动作和特征整合到一起
    # 学校类:
    # 特征:name,addr,type
    # 动作:考试,招生,开除学生
    # def school(name,addr,type):
    # def init(name, addr, type):
    # sch = {
    # 'name': name,
    # 'addr': addr,
    # 'type': type,
    # 'test': test,
    # 'employ': employ,
    # }
    # return sch
    # def test(school):
    # print('%s学校正在考试'%school['name'])
    # def employ(school):
    # print('%s %s 正在招生'%(school['type'],school['name']))
    # return init(name,addr,type) #初始化函数
    # s1 = school('oldboy','地址','类型')
    # print(s1)
    # s1['test'](s1)
    # s1['employ'](s1)
    # 自我总结:1.先写类(写出类事物的共有特征和共有的动作);2.写对象的属性(对象的特征)[赋予return值];3.定义各项动作函数
    #——————————————————————————————————————————————————————————#
    #用面向对象编程独有的语法class去实现面向对象设计,self就是面向对象自己
    # class Dog: 不用设计return值,本质就是执行了初始化值
    #小结:
    #一门面向对象的语言不一定会强制写OO程序,例如C++可以被认为更好的“C”,而Java则要求万物皆为类,此外还规定,一个源文件对应一个类文件
    # 在Python中,类和OOp都不是日常编程所必须的,尽管它从一开始设计就是面向对象,并且结构上支持OOP,但是pyhon没有限定或要求在应用中写OO的代码
    # 用面向对象的语言写程序,和一个程序的设计是面向对象的,这是两个完全不同的概念
    #——————————————————————————————————————————————————————————
    # 什么是类,什么是对象?
    # 类即类别、种类,是面向对象设计最重要的概念,对象是特征与技能的结合体,而类则是一系列对象相似的特征与技能的结合体
    # 类和对象的区别?
    # 那么问题来了,先有的一个个具体存在的对象(比如一个具体存在的人),还是先有的人类这个概念,这个问题需要分两种情况去看
    # 在现实世界中:先有对象,再有类
    # 在程序中:务必保证先定义类,后产生对象
    # 实例化:由类生产的对象的过程就是实例化
    #在python中声明函数和声明类很相似
    # 声明函数
    # def 函数名字(我是参数):
    # '函数文档字符串'
    # 函数体
    #——————————#
    # 声明类(可以没有函数的括号)
    # class 类名:
    # '类的文档字符串'
    # 类体
    #——————————#
    # class Chinese:
    # '这是一个中国人的类'
    # pass
    # print(Chinese)
    # F:PythonPythonLeaningvenvScriptspython.exe F:/Python/PythonLeaning/每日学习打卡/Day24.py
    # <class '__main__.Chinese'> 文件类型:class 模块名:__main__
    #
    # Process finished with exit code 0
    #——————————#
    # 实例化(类+加括号)
    # 新式类:所有的类都必须加object class Chinese(object)表示继承了object对象
    #——————————————————————————————————————————————————————#
    # 属性
    # 类是用来描述一类事物,类的对象指的是这一类事物中的一个个体
    # 是事物就要有属性,属性分为:1.数据属性,即变量;2.函数属性:就是函数,在面向对象里通常称为方法
    # 注意:类和对象均用点来访问自己的属性
    # class Chinese:
    # '这是一个中国人的类'
    # government = '***'
    # def handsome(self):
    # print('so handsome')
    # print(Chinese.government)
    # Chinese.handsome('目的只是为了传送值')
    # F:PythonPythonLeaningvenvScriptspython.exe F:/Python/PythonLeaning/每日学习打卡/Day24.py
    # ***
    # so handsome
    #
    # Process finished with exit code 0
    #——————————————————————————————————————————————————————#
    # 类的其他属性内容
    # 所有的类都有源头:object
    # print(Chinese.__name__)#类名
    # print(Chinese.__doc__)#文档
    # print(Chinese.__bases__)#元祖显示object
    # print(Chinese.__module__)#类定义所在模块
    # 实例化:调用了__init__的内容,实例只有数据属性,没有函数属性
    # class Chinese:
    # '这是一个中国人的类'
    # government = '***'
    # def __init__(name,age,gender):
    # dic = {
    # 'name':name,
    # 'age':age,
    # 'gender':gender,
    # }
    # return dic
    # def __init__(self,name,age,gender):
    # print('我是初始化函数,我开始运行')
    # self.name = name
    # self.age = age
    # self.gender =gender
    # print('初始化函数运行完毕')
    # def handsome(self):
    # print('so handsome')
    # def work(self):
    # print('work work')
    # # return init(name,age,gender) class自动return
    # p1 = Chinese('pandaboy',18,'male')
    # print(p1.__dict__)
    # 类有类的属性字典,实例有实例的属性字典,实例没有函数属性
    # 总结 定义了self会自动,实例一定能访问类属性,但是类属性不能访问实例属性
    # 类 实例
    # | |
    # dang = 'gong' self.mingzi = 'name'
    # def __init__(self,name,age) /
    # def method()
    # 实例化的过程实际就是执行__init__的过程,这个函数内部只是为实例本身即self设定了一堆变量,所以实例只有数据属性
    # 1.实例只有数据属性(实例的函数属性严格来说是类的函数属性)
    # 2.def实例/对象,只是回收了实例的数据属性,函数属性是属于类的,不会回收
    # 3.实例调用的方法是在类里去找的
    #——————————————————————————————————————————————#
    # 练习:编写一个学生类,产生一堆学生对象,要求有一个计数器(属性),统计总共实例了多少个对象
    #——————————————————————————————————————————————#
    # 类属性又称为静态变量,或者是静态数据,这些数据是与它们所属的类对象绑定的,不依赖与任何类实例,C++和Java要加上static
    # class Chinese:
    # country = 'China'
    # def __init__(self,name):
    # self.name = name
    # def play_ball(self,ball):
    # print('%s 正在玩 %s' %(self.name))
    # def say_word(self,word):
    # print('%s 说 %s' %(self,word))
    #查看类属性
    # print(Chinese.country)
    # F:PythonPythonLeaningvenvScriptspython.exe F:/Python/PythonLeaning/每日学习打卡/Day24.py
    # China
    #
    # Process finished with exit code 0
    ###################################################################################################
    # 修改类属性
    # Chinese.country = 'CHINA'
    # print(Chinese.country)
    # F:PythonPythonLeaningvenvScriptspython.exe F:/Python/PythonLeaning/每日学习打卡/Day24.py
    # CHINA
    #
    # Process finished with exit code 0
    ###################################################################################################
    # 增加类属性
    # Chinese.dang ='派别'
    # print(Chinese.dang)
    # p1 = Chinese.dang
    # print(p1)
    # F:PythonPythonLeaningvenvScriptspython.exe F:/Python/PythonLeaning/每日学习打卡/Day24.py
    # 派别
    # 派别
    # Process finished with exit code 0
    ###################################################################################################
    # 删除
    # del Chinese.country
    ###################################################################################################
    # class Chinese:
    # country = 'China'
    # def __init__(self,name):
    # self.name = name
    # def play_ball(self,ball):
    # print('%s 正在玩 %s' %(self.name,ball))
    # def say_word(self,word):
    # print('%s 说 %s' %(self,word))
    # p1 = Chinese('alex')
    # print(p1.__dict__)
    # 查看
    # print(p1.name)
    # p1.play_ball('篮球') #实际是访问的类的属性
    #增加
    # p1.age = 18
    # print(p1.__dict__)
    # print(p1.age)
    #不要修改字典的底层结构






    Win a contest, win a challenge
  • 相关阅读:
    汉文博士——支持生僻古难字检索的开放式免费汉语词典
    delphi 实现接口 Unsatisfied forward or external declaration
    注册服务程序
    递归的使用
    NTLDR is missing 错误处理方法
    测试
    常见数据类型的存储结构
    多维分析
    showmodule
    pos函数
  • 原文地址:https://www.cnblogs.com/pandaboy1123/p/8479481.html
Copyright © 2020-2023  润新知