类与方法与属性python

类与方法下面展示一些内联代码片`。

#-----2021 04 19 22.05-------属性和方法
#类中的定义属性和方法都是公共的,且遵守双亲委派机制
class person:
    name = "swk"
    teacher = "tangseng"
    def say_hello(self):#默认传递一个参数,所以方法中至少要定义一个形参
        #例如 如果是p1调用,则第一个参数就是p1
        print('你好,我是 %s'%self.name)
p1 = person()
p2 = person()
print(p1.name,p2.name)
print(p1.teacher,p2.teacher)
#当我们调用一个对象的属性时,解析器会现在当前对象中寻找是否含有该属性
#如果没有,则去当前的类对象寻找,有则返回,没有则报错
#类和对象都可以保存属性(如果这个属性是所有实例共享的,则保存到类对象里面)(如果是某个实例所独有的,就应该保存到实例对象中)
#一般情况下,属性保存到实例,方法保存到类

#修改name属性
p1.name = "zhubajie"
p2.name = "shaheshang"
print(p1.name,p2.name)

#调用类中的函数
p1.say_hello()
p2.say_hello()

#-----类的特殊方法init------------
class person_2 :
    def say_hello(self):
        print("hello , my teacher is %s" %self.teacher)
        #注意这里没有teacher属性,我们却希望对象的属性创建是自动的。
        #如果手动添加,容易遗忘,所以在类中可以定义一些特殊方法(魔术方法)
        #特殊方法不需要我们自己调用,它会在特殊时刻解析器自动调用
        def __init__(self,teacher):#这个魔术方法在每次使用类创建一个对象时执行
            print("init方法执行了")
            self.teacher = teacher  #初始化
        #程序执行顺序1.创建一个变量
        #2.在内存中创建一个新对象
        #3.__init__(self)执行(对象创建后立即执行)
        #4.将对象的id赋值给变量
        #5.结束
p3 = person_2("lyc")#因为self是解析器自己传入,所以1传入的参数从teacher开始也就是从第二个参数开始
#类的基本结构
#lass 类名([父类]) :
#   公共的属性
#   def __init__(self):
#       ..
#
    #其他的方法
#   def method_1(self,..):

#   def method_2(self,...)
#练习: 定义一个狗狗的类属性 name age gender height,方法jiao() yao() run()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值