Python|编写自己的类

01

类(对象)

class dog(object)

以上定义了一个dog对象,它继承于根类object.

02

类的属性

def __init__(self, name, dtype): self.name = name self.dtype = dtype

以上定义了dog对象的两个属性:name, dtype,通过__init__,这个系统函数是每个对象自带的。

03

类的方法

def shout(self): print('I'm %s, type: %s' % (self.name, self.dtype))

注意,对象的方法参数必须要有self,引用属性时,必须前面添加self.name等。

04

类的实例

xiaohuaDog = dog('xiaohua','quanType')

xiaohuaDog是dog对象的实例,Instance.

05

方法的可访问性

shout(selft)

shout()是一个public方法,或者可在外部被其他模块调用的方法。

__shout(selft)

如果在shout前加2个_后,此方法变为私有方法,只能在内部使用。

__type

属性前加2个_后,属性变为私有属性,通过这个可改变属性的可读可写属性。

def get_type(self): return __type

这样后,相当于type是可读不可写的。

06

私有变量真的无法被外部访问吗?

肯定不是! 要看python解释器是怎么解释私有变量或方法的。 一般地,不能直接访问__type是因为Python解释器对外把__type变量改成了_dog__type,所以,仍然可以通过_dog__type来访问__type变量。 但是不建议这么做!

原文发布于微信公众号 - 算法channel(alg-channel)

原文发表时间:2018-02-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大前端_Web

详解javascript作用域和闭包

版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/article/deta...

1214
来自专栏菜鸟计划

javascript 变量、作用域和内存问题

一、基本类型和引用类型的值   1.基本类型和引用类型的值  基本类型值:指那些保存在栈内存中的简单数据,即这种值完全保存在内存中的一个位置,他们所占据的空间大...

3758
来自专栏Pythonista

__slots__(面向对象进阶)

1034
来自专栏Python中文社区

Python中典型内建函数的用法

专栏作者简介 王 洪 永 在读大学生,学习过C, C++, Python, 了解java,html, javascript基础。其中就Python而言,自己写过...

2046
来自专栏iOS开发攻城狮的集散地

run timeimport : 成员变量、类、方法

1839
来自专栏Python小屋

详解Python序列解包

序列解包(Sequence Unpacking)是Python中非常重要和常用的一个功能,可以使用非常简洁的形式完成复杂的功能,大幅度提高了代码的可读性,减少了...

3777
来自专栏JetpropelledSnake

Python入门之函数的介绍/定义/定义类型/函数调用/Return

 本篇目录:     一、 函数的介绍     二、 函数的定义     三、 定义函数的三种类型     四、 函数调用的阶段     五、 Return返回...

3795
来自专栏编程

28.go语言没有类 却可以在结构体或任意类型定义方法

共2500字,阅读需6分钟 ? 在go语言中没有类。可是,是有方法的。 给结构体定义方法,在对应的 func 和方法名之间,加上方法的接收者就可以了。 比如,我...

19310
来自专栏大愚Talk

我对变量产生了这些想法

最近在学习Golang的过程中,发现一个有意思的事情,有的文章说函数调用传参时 slice 是引用传递,有的说是值传递。为什么同一个东西大家会不同认识?为了搞清...

871
来自专栏hrscy

Swift2.1-下标脚本下标脚本

类,结构体和枚举可以定义下标脚本,下标脚本可以认为是访问集合(collection),列表或序列的成员元素。你可是使用下标脚本来设置或通过索引检索值,而不需要调...

813

扫码关注云+社区

领取腾讯云代金券