1.类
类:具有相同的属性和方法的 对象 的集合
对象:万物皆对象
类和对象的关系:
类的包含属性和方法:
类是对象的模板
对象是类的实例
语法:
class 类名:
属性
方法
定义一个类:
---------------------------------------------------------------------------------------------------------------------------------
3. __init__(self,name,age) 在创建类的实例的时候,
回自动调用这个方法,一般用户对实例属性初始化;
class Person:
def __init__(self,name,age):
#self.name 创建一个属性交name 并且把v_name 赋值给了name
self.name=name;
self.age=age;
print("执行init时就被调用了")
p=Person("tom",22)
print(p.name)
print(p.age)
>>> 执行init时就被调用了 执行结果:
tom
22
-----------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------
def __init__(self,name,role,weapon,life_value=100,moneny=15000):
# 构造函数
# 实例化过程中做一些类的初始化工作
self.name = name
self.role = role
self.weapon = weapon
self.life_value = life_value
self.moneny = moneny
self.__heart = 'normal' # 私有属性
def shot(self): # 类的方法,功能(动态属性)
print("shotting")
print("私有属性", self.__heart)
self.__heart = 'dddd'
print("私有属性", self.__heart)
def got_shot(self):
print("on,%s got shoot..." % self.name)
def buy_gun(self,gun_name):
print("%s just bought %s" %(self.name,gun_name))
self.weapon = gun_name
b1 = role('mike','police','AK47')
print(b1.shot())
'''
shotting
私有属性 normal
私有属性 dddd
None
'''
----------------------------------------------------------------------------------------
7.def __str__() 一个类的实例变成str,需要用特殊方法__str__()
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
p = Person('Bob', 'male')
print (p)
>>> <__main__.Person object at 0x02171270>
class Person(object):
def __init__(self, name, gender):
self.name = name
self.gender = gender
def __str__(self):
return '(Person: %s, %s)' % (self.name, self.gender)
p = Person('Bob', 'male')
print (p)
>>> (Person: Bob, male)
-----------------------------------------------------------------------------------------
8. 自动销毁方法:__del__(): 当对象没有引用的时候,
或程序结束的时候,程序自动调用__del__()
class Person:
def __init__(self,name,age):
self.name=name
self.age=age
def __del__(self):
print("对象张三被销毁")
zhangsan=Person("张三",20)
zhangsan.__del__()
执行结果:
>>> 对象张三被销毁
对象张三被销毁
-------------------------------------------------------------------------------------------------------------------
class Person:
def __init__(self,name,age):
self.name=name;
self.age=age;
def showInfo(self):
print("姓名{0} 年龄{1}".format(self.name, self.age))
@staticmethod
def goHome(self,name, by):
print(name, "回家...", by)