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

面向对象(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])

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,717评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,501评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,311评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,417评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,500评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,538评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,557评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,310评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,759评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,065评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,233评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,909评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,548评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,172评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,420评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,103评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,098评论 2 352

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,094评论 1 32
  • 初识面向对象 楔子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战...
    go以恒阅读 923评论 0 6
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,745评论 2 9
  • 本周是风云变幻的一周,上周末还在跟长辈们讨论着怎么炒房,这周限购政策就出来了。本来已经逐渐入春的天气,忽然间两天雨...
    小花Ivan阅读 242评论 0 0
  • 认识一个师父,他教会我第一项人生必备技能。谨言慎行,简单来讲,就是靠谱。那是我第一份工作,却给我的人生带来了翻天覆...
    七月上的冥王星阅读 247评论 0 0