Python面向对象-类的特性及公私有属性

原创 Hunter  2018-03-26  阅读 576 次

1517800305131980.jpg

构造函数

__init__
self.name = name #属性,成员变量,字段
def sayhi() #方法,动态属性

公有属性

在类中直接定义的属性,大家都可以用

私有属性

__两个下划线定义,外部不可以访问,内部可以访问

class Role(object):
    nationality = "China" #公有属性
    def __init__(self, name, role, weapon, life_value=100, money=15000):
    self.name = name
    self.role = role
    self.weapon = weapon
    self.life_value = life_value
    self.money = money
    self.__heart = "正常"
def shot(self):
    print("%s is shooting..." % self.name)
def got_shot(self):
    print("ah...,%s got shot..." %self.name)
self.__heart = 'Die' #私有属性
    print(self.name,self.__heart)
def get_heart(self):#对外部提供的只读访问接口
    return self.__heart
def buy_gun(self, gun_name):
    print("%s just bought %s" % (self.name, gun_name))
    self.weapon = gun_name
    
r1 = Role('Hunter', 'police', 'AK47') #生成一个角色
r2 = Role('Jack', 'terrorist', 'B22')  #生成一个角色
Role.nationality = "USA" #更改类的公有属性
r1.nationality = "US" #更改自己的公有属性值
print(r1.name)
print(r1.get_heart())
r1.got_shot()
r1._Role__heart#强制访问私有属性

返回:

Hunter

正常

ah...,Hunter got shot...

Hunter Die

析构方法

def _del_(self):
    print("del……run……")
del r1
import time 
time.sleep(5)

返回:

del……run……

ps:当内存被人工释放时执行程序断,适用类似于程序退出后,然后执行的一些类似关闭端口服务等收尾工作。

本文地址:http://www.hantao.org/python/617.html
版权声明:本文为原创文章,版权归本站作者: Hunter 所有,欢迎分享本文,转载请保留出处!

发表评论


表情