类和对象

Posted littleb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类和对象相关的知识,希望对你有一定的参考价值。

class 类名:

? 特征

? 技能

定义类名的规范:驼峰命名法

#定义老男孩学生类
class OldboyStudent: #类名指向的是类的内存地址
    #学生相同的特征,也称为属性
    school = 'oldboy'
    
    #学生相同的技能
    #注意:在类内部定义函数,会默认有一个参数self
    def learn(self): #self此时当作一个形参
        print('learning...')
        
print(OldboyStudent)  ## <class '__main__.OldboyStudent'>
#查看类的名称空间
print(OldboyStudent.__dict__)
print(OldboyStudent.__dict__['school'])
print(OldboyStudent.__dict__['learn'])
OldboyStudent.__dict__['learn'](123)
#类提供一种获取名字的特殊方式“类名.名字”
#查
print(OldboyStudent.school) #--->oldboy
OldboyStudent.learn('形参') #--->learning...
#改
OldStudent.school = 'oldgirl'
print(OldStudent.shool) #--->oldgirl
#删
del OldStudent.school
#增
OldStudent.old_student = 'lzn'
print(OldboyStudent.old_student) #--->lzn

关于名称空间:

? 函数的名称空间:在函数调用时产生,函数调用结束后销毁

? 类的名称空间:在定义阶段时产生,会将类中所有名字都扔进类的名称空间中

对象

对象的产生:

? -调用类产生对象

? 类名+()调用类产生对象

? 类的名称空间在定义时产生,对象的名称空间在调用类时产生

? 调用类产生对象的过程称之为类的实例化,对象称之为类的一个实例

由对象来调用类内部的函数,称之为对象的绑定方法

? 特殊之处在于:会将对象当作第一个参数传入***,若对象的绑定方法中还有其他参数,会一并传入。

class Student:
    #学校
    school = 'oldboy'
    
    def __init__(self,name,sex,age):
        print(self.__dict__)#查看当前对象的名称空间
        #给对象添加新的属性
        self.name = name
        self.sex = sex
        self.age = age
        
    def learn(self):
        print(self)
        print('learning...')
        
#*****想要在调用类时,为对象传入对象独有的特征
#*****__init__(self,name,sex,age)
#调用类时会将对象当做第一个参数,与括号内所有的参数一并传给__init__()
stu1 = Student('lzn','male','18')
print(stu1.name,stu1.age,stu1.sex)
#>>>lzn 18 male

#注意:凡是在类内部定义的.__开头或者__结尾的方法都有特殊意义。

以上是关于类和对象的主要内容,如果未能解决你的问题,请参考以下文章

使用CSS伪类和伪对象实现dl;dt+dd在一行显示

JAVA方法的定义

10方法的定义和重载和递归

JavaSE:类和对象

如何从片段内的列表视图打开链接网址?

VSCode自定义代码片段12——JavaScript的Promise对象