【python 面向对象 class 1】
class Wife():
"""
老婆类
"""
def __init__(self,name,age,sex): # 对象的属性 构造函数 数据 负责对象的初始化
# 实例变量 对象的
self.name = name
self.age = age
self.sex = sex
def introduce(self): # 对象方法
# 实例方法
# introduce = "名字:" + self.name + "年龄:" + self.age + "性别:" + self.sex
introduce = "名字:%s,年龄:%d,性别:%s"%(self.name,self.age,self.sex) # python 字符串格式化
return introduce
w01 = Wife("小赵",16,"女")
# 通过对象地址调用方法,会自动传递对象地址到self变量中
# 调用实例方法
print(w01.introduce()) # 名字:小赵,年龄:16,性别:女
# 如果对象存储该数据,则设置数据值,对象没有该数据,则添加数据。
w01.age = 32
w01.money = 10000
print(w01.__dict__) # 查看对象属性(数据) {'name': '小赵', 'age': 32, 'sex': '女', 'money': 10000}
#################################################################################################
# 类变量和方法一般用不到
class ZrcBank():
"""
银行类
"""
moneys = 100000 # 类变量 被所有对象共享的数据
@classmethod # 类方法
def get_moneys(cls): # cls 指的是调用当前方法的类
print(cls.moneys)
def __init__(self,name,money): # 对象的属性 构造函数 数据
self.name = name
self.money = money
ZrcBank.moneys -= money # 每创建一个对象,类变量就会减少一些钱
zrc01 = ZrcBank("常熟",1000)
# 调用类方法
ZrcBank.get_moneys() # 99000
# 创建对象
zrc02 = ZrcBank("张家港",900)
ZrcBank.get_moneys() # 98100
#################################################################################################
# 静态方法 用@staticmethod装饰的不带self参数的方法叫做静态方法,类的静态方法可以没有参数,可以直接使用类名调用。(只是拿类,包了一下方法)
class Myclass():
# 静态方法
@staticmethod
def fun1(para):
return para
print(Myclass.fun1("para")) # para