【Python】类,基础1

"""在程序当中,先定义类才有的对象"""
#定义类
# 类跟函数的区别是,类在定义阶段函数代码都会执行,函数需要调用
# 类的用法就是操作它的属性,分为增删改查,通过.来调用
class Luffycity:
    school ='luffycity'#数据属性
    def learn(self):#函数属性
        print("is learning")

    def eat(self):#函数属性
        print("is sleeping")


# 查看类的名称空间
print(Luffycity.__dict__)
print(Luffycity.__dict__['school'])
print(Luffycity.__dict__['learn'])
# 查
print(Luffycity.school)
print(Luffycity.learn)
#增
Luffycity.country='China'
print(Luffycity.country)

# 删
del Luffycity.country

#改
Luffycity.school="Luffycity"

#__init__方法用来为对象定制对象自己独有的特征
#析构函数直接调用


class ZtcityStudent:
    school="Ztcity"
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex

    def learning(self):
        print("沉迷于学习,无法自拔")

    def start(self):
        print("我将无我")


# 构建后产生对象
stu1=ZtcityStudent("祝祝","女",18)
#__init__自动调用相当于,ZtcityStudent.__init__


#加上__init__方法后,实例化的步骤
#1:先产生一个空对象stu1
#2:LuffyStudent.__init__(stu1,"祝祝","女",18)



# 查
print(stu1.__dict__)
print(stu1.name)
print(stu1.age)
print(stu1.sex)

#改
stu1.name="shimmer"
print(stu1.__dict__)
print(stu1.name)
print(stu1.sex)
print(stu1.age)

#删
del stu1.name
print(stu1.__dict__)


#增
#其实增加与修改是类似的,当存在属性的时候在对进行赋值就是修改,
# 添加一个还没有存在的属性的时候就是添加
stu1.class_name="python全栈开发"
print(stu1.__dict__)

stu2=ZtcityStudent("winter",'男',19)
print(stu2.__dict__)
print(stu2.name)
print(stu2.age)
print(stu2.sex)


class ZTcity:
    school="ZTcity"#类的数据属性
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex
    def learning(self,x):
        print("%s is learning %s"%(self.name,x))


#产生对象
stu1=ZTcity("shimmer",18,"female")
stu2=ZTcity("王二狗",28,"male")
stu3=ZTcity("李铁蛋",38,"male")


#对象:特征与技能的结合体
#类:类是一系列对象相似的特征与相似的技能的结合体

# 类的数据属性,是所有对象共有的
print(ZTcity.school,id(ZTcity.school))
print(stu1.school,id(stu1.school))
print(stu2.school,id(stu2.school))
print(stu3.school,id(stu3.school))



# 类中的函数属性:是绑定给对象使用的,绑定到不同的对象是不同的绑定方法
# 对象调用绑定方法时,会把对象本身当作第一个传入,传给self
# def learning(self):调用语句如下
# print(ZTcity.learning)
# ZTcity.learning(stu1)
# ZTcity.learning(stu2)
# ZTcity.learning(stu3)
# stu2.learning()
# stu3.learning()


print(stu1.learning)
# def learning(self,x):调用语句如下
stu2.learning(2)
stu3.learning(3)


# 当内部存在相关属性时就在内部找然后应用,当内部不存在相关属性时就到类里面找,不能到类外面找
stu1.x="from stu1"
ZTcity.x="from ZTcity class"

print(stu1.__dict__)
print(stu1.x)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Recently 祝祝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值