__init__()方法:
# init初始化
class Cat:
# 属性
def __init__(self):
self.name='汤姆'
self.age=20
# 方法
def eat(self):
print("吃鱼")
def drink(self):
print("喝牛奶")
#介绍
def introduce(self):
print('大家好,我是%s,我今年%s岁'%(self.name, self.age))
tom = Cat()
tom.eat() #吃鱼
tom.drink() #喝牛奶
print(tom.name) #汤姆
print(tom.age) #20
tom.introduce() #大家好,我是汤姆,我今年20岁
有参数的__init__()方法:
# init初始化
class Cat:
# 属性
def __init__(self,new_name,new_age):
self.name=new_name
self.age=new_age
def introduce(self):
print('大家好,我是%s,我今年%s岁'%(self.name, self.age))
tom = Cat('汤姆',20)
print(tom.name) #汤姆
print(tom.age) #20
tom.introduce() #大家好,我是汤姆,我今年20岁
garfield = Cat('加菲猫',10)
print(garfield.name) #加菲猫
print(garfield.age) #10
garfield.introduce() #大家好,我是加菲猫,我今年10岁
__str__()方法:
# init初始化
class Cat:
# 属性
def __init__(self,new_name,new_age):
self.name=new_name
self.age=new_age
def introduce(self):
print('大家好,我是%s,我今年%s岁'%(self.name, self.age))
tom = Cat('汤姆',20)
print(tom.name) #汤姆
print(tom.age) #20
tom.introduce() #大家好,我是汤姆,我今年20岁
garfield = Cat('加菲猫',10)
print(garfield.name) #加菲猫
print(garfield.age) #10
garfield.introduce() #大家好,我是加菲猫,我今年10岁
__del__()方法:
# 当一个对象 没有引用指向他时 就会被回收
# 这时会自动调用_del_()方法
class Cat:
def __init__(self, new_name, new_age):
print('---------init---------')
self.name = new_name
self.age = new_age
def __str__(self):
return '大家好,我是%s,我今年%s岁' % (self.name, self.age)
#在对象被删除时,会自动被调用
def __del__(self):
print('----------del-------')
tom=Cat('汤姆',20) #---------init---------
print(tom) # 大家好,我是汤姆,我今年20岁
#---------init---------
garfield=Cat('加菲猫',10) # 大家好,我是加菲猫,我今年10岁
print(garfield) #----------del-------
#----------del-------
私有属性:
# 私有权限: 在属性名和方法名 前面 加上两个下划线 __
class Person:
def __init__(self):
#私有属性
self.__id ='身份证号码:xxxxxx'
def my_name(self,password):
if password ==123456:
#私有属性:可以在类内部使用
print(self.__id)
else:
print('不告诉你')
person = Person()
print(person.__id) #报错
person.my_name(123456) #身份证号码:xxxxxx
person.my_name(123) #不告诉你
私有方法:
# 类的私有属性 和 私有方法,都不能通过对象直接访问
# 但是可以在本类内部直接访问
# 私有属性 和 私有方法 往往用来处理类的内部事情。
# 不通过对象处理,起到安全作用。
class Persion:
# 私有方法 前面同样要加__
def __process_bug(self):
print('专业处理程序bug')
def process_bug_vip(self,money):
if money>100:
self.__process_bug()
else :
print('钱不够,自己解决')
cxy = Persion()
#print(cxy.__process_bug) #报错
cxy.process_bug_vip(50) #钱不够,自己解决
cxy.process_bug_vip(1000) #专业处理程序bug