python面向对象讲解_python之面向对象方法详解

语法:

def __del__(self):

函数体

析构函数不能传参,是类的内部调运;在对象执行结束,内存被释放,销毁时执行;

实例del后将处罚运行。

3.私有方法

Python默认的成员函数和成员变量都是公开的,python的私有属性和方法没有类似别的语言的public,private等关键词来修饰。 在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就会为私有的了。

声明该方法为私有方法,不能在类的外部调用。

实例:

#Author:Anliu

class test1:

def ssh_test(self):

print("测试ssh链接是否正常")

def ssh_conn(self):

print("ssh链接设备")

admin = test1()

user1 = test1()

admin.ssh_test()

user1.ssh_test()

假设开发需求规定对与实例不能直接使用ssh_test()的成员函数,ssh_test()的存在只是类的内部判断,在ssh_conn()之前调运ssh_test()测试可链接,则调运ssh_conn()。

那么,可将ssh_conn()设置为私有方法:

#Author:Anliu

class test1:

def __ssh_test(self):

pass

print("%s测试ssh链接是否正常"%self)

flag = 1

return flag

def ssh_conn(self):

self.__ssh_test() #在类的内部可调运私有方法

print("ssh链接设备")

#t = admin.__ssh_test()

admin = test1()

user1 = test1()

#admin.__ssh_test() #将报错:AttributeError: 'test1' object has no attribute '__ssh_test'

#user1.__ssh_test()

user1.ssh_conn()

4.私有属性

如果有一个对象,当需要对其进行修改属性时,有2种方法

对象名.属性名 = 数据 ---->直接修改

对象名.方法名() ---->间接修改

为了更好的保存属性安全,即不能随意修改,一般的处理方式为

将属性定义为私有属性

添加一个可以调用的方法,供调用。

#Author:Anliu

class user:

def __init__(self,name,money,balance):

self.name = name

self.__money = money #定义私有属性

self.balance = balance

def loggin(self):

print("%s please logging,balance is %s,money is %s"%(self.name,self.balance,self.__money))

def buy(self):

print("%s buy a shopping"%self.name)

def skan(self):

print("%s skan shopping"%self.name)

def define(self,new_money):

self.__money = new_money

user_admin = user("admin","1223","32324")

user_users = user("user","1223","32324")

user_admin.loggin()

user_users.buy()

#print(user_users.__money) #报错:AttributeError: 'user' object has no attribute '__money'

print(user_users.balance)

print(user_users.define(100000)) #可调运新的新的方法来实现私有变量的修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值