标签:onclick lap python2 实现 父类 通过 nbsp 属性 列表
python是一门面向对象的编程语言。
不同的编程样式有不同的风格,不同的风格有他不同的牛逼之处。
三大编程范式:
面向对象设计(Object oriented design):将一类具体事物数据和动作整合到一起,即面向对象设计
面向对象设计(OOD)不会不会特别要求面向对象语言,事实上,OOD可以由纯结构化语言来实现,比如C,但是如果想要结构具备对象性质和特点的数据结构,就要在程序上多做努力。
1 def Dog(name, gender): 2 def ini(name, gender): 3 dog1 = { 4 "name": name, 5 "gender": gender, 6 "jiao": jiao, 7 "chi": chi, 8 } 9 return dog1 10 def jiao(dog): 11 print("一条狗 【%s】,汪汪汪"%dog["name"]) 12 def chi(dog): 13 print("一条狗 【%s】 正在吃东西"%dog["name"]) 14 dog1 = ini(name, gender) 15 return dog1 16 17 if __name__ == "__main__": 18 d1 = Dog("狗1",5) 19 print(d1) 20 d1["jiao"](d1)
面向对象编程(Object-oriented programing):用定义类+实例/对象的方法去实现面向对象的设计
1 class Dog: 2 def __init__(self, name, gender): 3 self.name = name 4 self.gender = gender 5 def jiao(self): 6 print("一条狗 【%s】,汪汪汪" % self.name) 7 def chi(self): 8 print("一条狗 【%s】 正在吃东西"%self.name) 9 if __name__ == "__main__": 10 d1 = Dog("狗1", 3) 11 print(d1) 12 d1.chi()
一门面向对象的语言不一定强制你写OO方式的程序,例如 C++可以认为是更好的C;而JACA则要求万物皆类
在Python中,类和OOP都不是日常编程所必须的,尽管它从一开始就设计是面向对象的。
用面向对象语言编写程序,和一个程序是面向对象设计的,两者八竿子打不着,是两码事。
1.什么是类:类是一种数据结构,就好比一个模型,该模型用来表述一类事物。
2.什么是对象:你看到的每一个事物都是一个对象,可以理解对象就是一个具体的事物。
3.类与对象的关系:对象是由类产生的,类是对象的模板。
4.什么是实例化:由类产生对象的过程叫实例化,类实例化的结果就是一个对象,或者叫实例。
类的声明:
1 ‘‘‘ 2 class 类名: 3 ‘类的文档字符串‘ 4 类体 5 ‘‘‘
# 创建一个类
class Data:
pass
# 用类实例化一个对象
d1 = Data()
金典类和新式类:
大前提: 1.只有在python2中才有新式类和金典类,python3中都是新式类 2.新式类和金典类的最大区别在于,所有新式类继承至少一个父类 3.所有类不管是否声明父类,都默认继承object父类。 在python2中: 金典类: class 类名: pass 新式类: class 类名(父类): pass python3中,上面连种定义都是新式类。
类的属性:
注意:类和对象都用 点 类访问自己的属性
class Dog: def __init__(self, name, gender): self.name = name self.gender = gender def jiao(self): print("一条狗 ,汪汪汪" ) def chi(self): print("一条狗 正在吃东西") if __name__ == "__main__": Dog.jiao(123) print(Dog.__dict__) # 结果是一个字典,包含类的所有属性 print(dir(Dog)) # 结果是一个列表,包含类的所有属性名
对象是由类实例化得来的。
实例化:
class Dog: def __init__(self, name, gender): self.name = name self.gender = gender def jiao(self): print("一条狗 【%s】,汪汪汪" % self.name) def chi(self): print("一条狗 【%s】 正在吃东西" % self.name) if __name__ == "__main__": d1 = Dog("狗1", 3) # 类名加上括号就是实例化 d1 就是一个实例
class Dog: master = "xioahong" def __init__(self, name, gender): self.name = name self.gender = gender def jiao(self): print("一条狗 【%s】,汪汪汪" % self.name) def chi(self): print("一条狗 【%s】 正在吃东西" % self.name) if __name__ == "__main__": # ==================================类属性的增删改查 # 查看类属性 print(Dog.master) # 修改类属性 Dog.master = "xiaoming" print(Dog.master) # 删除类属性 del Dog.master # 增加类属性 print(Dog.__dict__) Dog.master = "me" Dog.home = "myhome" print(Dog.__dict__) # =================================实例属性的增删改查 d1 = Dog("Dog1",5) # 查看 print(d1.__dict__) # 增加 d1.mather = "小花" print(d1.__dict__) # 不要通过修改底层字典的字典属性 # d1.__dict__["father"] = "小草" # print(d1.__dict__) # 改 d1.name = "Dog2" print(d1.name) # 删除 del d1.name print(d1.__dict__)
实例查找属性也是按照区域查找,先找实例自己的,然后才是类的。
标签:onclick lap python2 实现 父类 通过 nbsp 属性 列表
原文地址:https://www.cnblogs.com/kaixindexiaocao/p/10590855.html