美文网首页大数据 爬虫Python AI SqlPython之佳
python面向对象常用方法,一篇博文胜过一本书

python面向对象常用方法,一篇博文胜过一本书

作者: 山禾家的猫 | 来源:发表于2018-12-24 14:43 被阅读0次

面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

小编推荐大家可以加我的扣扣群 735934841 。里面有海量视频教程和学习资料免费领取,不失为是一个学习的好地方,欢迎你的到来。一起交流学习!共同进步!!

What Is The Object Oriented In Python3?

对象(object ):通过类定义的数据结构。包括两个数据成员(类变量和实例变量)和方法。

类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。

类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

实例变量:在类的声明中,属性是用变量来表示的。这种变量就称为实例变量,是在类声明的内部但是在类的其他成员方法之外声明的。

方法:类中定义的函数。

How To Realize The Object-Oriented In Python3?

01

1#类的定义

2class ClassName:

3

4<statement-1>

5

6<statement-N>

02

1#类的属性

2class MyClass:

3i = 12345

4# 实例化类

5x = MyClass()

6# 访问类的属性

7print("MyClass 类的属性 i 为:", x.i)

03

1#类的私有属性

2

3__private_attrs:

4#在类内部的方法中使用时

5self.__private_attrs

04

1#类的方法

2class MyClass:

3#在类地内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数,self 代表的是类的实例。

4def f(self):

5return 'hello world'

6# 实例化类

7x = MyClass()

8# 访问类的方法

9print("MyClass 类的方法 f 输出为:", x.f())

05

1#两个下划线开头,声明该方法为私有方法,只能在类的内部调用,不能在类地外部调

2#类的私有方法

3__private_method:

4#self.__private_methods类有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用

完整代码

1# 类定义

2class people:

3# 定义基本属性

4name = ''

5age = 0

6# 定义私有属性,私有属性在类外部无法直接进行访问

7__weight = 0

8

9# 定义构造方法

10def __init__(self, n, a, w):

11 self.name = n

12 self.age = a

13 #定义私有方法

14 self.__weight = w

15

16def speak(self):

17 print("%s 说: 我 %d 岁。" % (self.name, self.age))

18

19

20# 实例化类

21p = people('runoob', 10, 30)

22p.speak()

输出结果为:runoob 说: “我10岁”。

继承

1class DerivedClassName(BaseClassName1):

2

3.

4.

5.

6 <statement-N>

单继承

1# 单继承示例

2class student(people):

3grade = ''

4

5def __init__(self, n, a, w, g):

6 # 调用父类的构函

7 people.__init__(self, n, a, w)

8 self.grade = g

9

10# 覆写父类的方法

11def speak(self):

12 print("%s 说: 我 %d 岁了,我在读 %d 年级" % (self.name, self.age, self.grade))

13

14

15s = student('ken', 10, 60, 3)

16s.speak()

多继承

1# 另一个类,多重继承之前的准备

2class speaker():

3topic = ''

4name = ''

5

6def __init__(self, n, t):

7 self.name = n

8 self.topic = t

9

10def speak(self):

11 print("我叫 %s,我是一个演说家,我演讲的主题是 %s" % (self.name, self.topic))

12

13

14# 多重继承

15class sample(speaker, student):

16a = ''

17

18def __init__(self, n, a, w, g, t):

19 student.__init__(self, n, a, w, g)

20 speaker.__init__(self, n, t)

21

22

23test = sample("Tim", 25, 80, 4, "Python")

24test.speak() # 方法名同,默认调用的是在括号中排前地父类的方法

总结:

Python是一门面向对象的语言。就是将任何事情都当做对象象去看待。因此会有很多的对象,而我们要将不同对象进行分类,就有了类的概念。不同的人有眼睛鼻子嘴巴耳朵等属性,有吃饭睡觉读书写字等行为,因此对象也有自己的属性和行为(方法)。

Python类的基本方法

1. __str__和__repr__方法

功能

打印类的属性。

调用__str__样例

demo = Demo()print (demo)

调用__repr__样例

demo = Demo()demo

2. __len__方法

功能

获取字符串长度

样例

demo = Demo() print(len(demo))

3. __iter__方法

功能:

迭代的意思是重复做一些事很多次---就像在循环中做的那样。__iter__ 方法返回一个迭代器,所谓迭代器就是具有next方法的对象,在调用next方法时,迭代器会返回它的下一个值。如果next方法被调用,但迭代器没有值可以返回,就会引发一个StopIteration异常。

样例:

class TestIterator: value = 0 def next(self): self.value += 1 if self.value > 10: raise StopIteration return self.value def __iter__(self): return self>>> ti = TestIterator()>>> list(ti)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

4. __getitem__方法

功能

希望通过索引获取数据。

样例

class DataBase:

'''Python 3 中的类'''

def __init__(self, id, address):

'''初始化方法'''

self.id = id

self.address = address

self.d = {self.id: 1,

self.address: "192.168.1.1",

}

def __getitem__(self, key):

# return self.__dict__.get(key, "100")

return self.d.get(key, "default")

data = DataBase(1, "192.168.2.11")

print(data["hi"])

print(data[data.id])

相关文章

网友评论

    本文标题:python面向对象常用方法,一篇博文胜过一本书

    本文链接:https://www.haomeiwen.com/subject/jfkzkqtx.html