Python之面向对象(一)
2020-12-13 03:04
标签:onclick lap python2 实现 父类 通过 nbsp 属性 列表 python是一门面向对象的编程语言。 不同的编程样式有不同的风格,不同的风格有他不同的牛逼之处。 三大编程范式: 面向对象设计(Object oriented design):将一类具体事物数据和动作整合到一起,即面向对象设计 面向对象设计(OOD)不会不会特别要求面向对象语言,事实上,OOD可以由纯结构化语言来实现,比如C,但是如果想要结构具备对象性质和特点的数据结构,就要在程序上多做努力。 面向对象编程(Object-oriented programing):用定义类+实例/对象的方法去实现面向对象的设计 一门面向对象的语言不一定强制你写OO方式的程序,例如 C++可以认为是更好的C;而JACA则要求万物皆类 在Python中,类和OOP都不是日常编程所必须的,尽管它从一开始就设计是面向对象的。 用面向对象语言编写程序,和一个程序是面向对象设计的,两者八竿子打不着,是两码事。 1.什么是类:类是一种数据结构,就好比一个模型,该模型用来表述一类事物。 2.什么是对象:你看到的每一个事物都是一个对象,可以理解对象就是一个具体的事物。 3.类与对象的关系:对象是由类产生的,类是对象的模板。 4.什么是实例化:由类产生对象的过程叫实例化,类实例化的结果就是一个对象,或者叫实例。 类的声明: 金典类和新式类: 类的属性: 注意:类和对象都用 点 类访问自己的属性 对象是由类实例化得来的。 实例化: 实例查找属性也是按照区域查找,先找实例自己的,然后才是类的。 Python之面向对象(一) 标签:onclick lap python2 实现 父类 通过 nbsp 属性 列表 原文地址:https://www.cnblogs.com/kaixindexiaocao/p/10590855.html一、三大编程范式
二、面向对象设计与面向对象编程
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)
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()
四、小结
五、类和对象
5.1 类的相关知识
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)) # 结果是一个列表,包含类的所有属性名
5.2 对象的相关知识
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 就是一个实例
5.3 类属性和对象(实例)属性
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__)
上一篇:js280行代码写2048
下一篇:Java中并发和并行的概念