我是靠谱客的博主 孝顺哈密瓜,最近开发中收集的这篇文章主要介绍学习Python之路之self的用法、内置函数的用法以及私有属性和私有方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、self

1、什么是self

self:哪个对象调用的方法self就是哪个方法的引用、

2、self的用法

在类封装的方法内部,self就表示当前调用方法的对象自己

调用方法时。程序员不需要传递self参数(但是定义的时候,第一个参数必须是self)

在方法内部:可以通过self,访问其他对象的属性,还可以调用其他对象方法

3、实例

案例【1】

class Cat:
def eat(self):
print '%s 爱吃鱼' %self.name
def drink(self):
print '%s 爱喝水' %self.name
tom = Cat()
# 给tom对象添加一个属性
tom.name = 'Tom'
tom.eat()
tom.drink()
print tom
lazy_cat = Cat()
# 给lazy_cat对象添加一个属性
lazy_cat.name = 'lazy'
lazy_cat.eat()
lazy_cat.drink()
print lazy_cat
tom = Cat()
tom.name = 'fentiao'
tom.eat()
tom.drink()

注意:在日常开发中,不推荐在类的外部给对象增加属性,如果在运行的时候,没有找到属性,程序就会报错,对象应该包含那些属性,应该封装在类的内部

二、内置方法

1、有什么内置方法?

__del__方法:对象被从内存中销毁之前,会自动调用

__str__方法:返回对象的描述信息,print 对象

__init__初始化方法:专门用来定义一个类具有那些属性和方法的

2、在什么情况下,会调用内置方法

在python中,当一个对象被从内存中销毁之前(把这个对象从内存中删除掉),会自动调用___del__方法

__del__的应用场景:如果希望在对象被销毁之前,在做一些事情,可以考虑__del__方法

在python中,使用python输出对象变量,默认情况下,会输出这个变量引用的对象是由哪一个类创建的,以及在内存中的地址

__str__方法的应用场景:若在开发中,希望使用print输出对象变量时,能够打印自定义的内容,就可以利用__str__这个内置方法了

我们知道用 类名()就可以创建一个对象,当使用类名创建对象时,python的解释器会自动执行以下操作:21.为对象在内存中分配空间--创建对象 2.调用初始化方法为对象的属性设置初始值--初始化方法(__init__方法)

3、实例

案例【1】:

class Cat:
def __init__(self,new_name):
self.name = new_name
print '%s 来了' %self.name
def __del__(self):
print '%s 走了' %self.name
def __str__(self):
# 必须返回一个字符串
return '我是 %s' %self.name
# tom是一个全局变量
# 所以当我们的代码全部执行完之后,系统才会把tom这个对象进行回收
tom = Cat('Tom')
print tom
print tom.name
# del关键字,可以从内存中删除一个对象,del关键字自己调用了__del__方法
del tom
print '*' * 50

 

生命周期的概念:

生命周期
一个对象从调用类名()创建,声明周期开始
一个对象的__del__方法一旦被调用,生命周期就结束
在对象的生命周期内,可以访问对象的属性,调用对象的方法

 案例【2】:初始化方法

class Cat:
def __init__(self,new_name): # 与函数一样
print '这是一个初始化方法'
# self.属性名= 属性的初始值
#self.name = 'Tom'
self.name = new_name
# 在类中 任何方法都可以使用这个self.name
def eat(self):
print '%s 爱吃鱼' %self.name
# 并没有调用__init__方法
# 使用类名()创建对象的时候,会自动调用初始化方法__init__
tom = Cat('Tom')
# 在__init__方法的内部使用 self.属性名= 属性的初始值 定义对象的属性
# 定义属性之后,再使用Cat类创建对象,都会拥有该属性
print tom.name
tom.eat()
lazy_cat=Cat('Lazy_cat')
lazy_cat.eat()

三、私有属性和私有方法

私有属性和私有方法的应用场景,在实际开发中,对象的某些属性或方法可能只希望在对象的内部使用,而不希望在外部被访问到

私有属性就是 对象不希望公开的属性

私有方法就是 对象不希望公开的方法

案例:

class Women:
def
__init__(self,name):
self.name = name
# 定义私有属性
self.__age = 18
def __secret(self):
# 在对象的方法内部,是可以访问对象的私有属性的
print '%s 的年龄是 %d' %(self.name,self.__age)
lily = Women('lily')
# 私有属性,在外界不能被直接访问
#print lily.age
# 私有方法,同样不允许在外界直接访问
lily.secret()

因为私有方法或属性不希望被外界访问到,所以在执行时就会出错

 

 

 

 

 

 

 

 

 

 

 

最后

以上就是孝顺哈密瓜为你收集整理的学习Python之路之self的用法、内置函数的用法以及私有属性和私有方法的全部内容,希望文章能够帮你解决学习Python之路之self的用法、内置函数的用法以及私有属性和私有方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部