Python面向对象之类和对象代码示例

作者:袖梨 2022-06-25

本篇文章小编给大家分享一下Python面向对象之类和对象代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

定义类

所有类名首字母要求大写,多个单词时遵循驼峰命名法

所有未定义父类的类都继承object

格式:class 类名[(父类)]:

#两种方式意思相同
class Person:
    pass 
class Person(object):
    pass

定义类和属性

name、age、subject就是类属性

class Student:
    #类属性
    name = ''
    age = 0
    subject = []

类中方法

对象方法(普通方法)

格式:
def 方法名(self[,parm1,parm2...]):
    pass

self就是对象本身

class Student:
    # 类属性
    name = 'student'
    age = 0
    subject = []
   # 普通方法
    def study(self):
        print(self.name, '正在学习...') 
xiaoming = Student()
xiaoming.name = 'xiaoming'
xiaoming.study() 

------------

输出:

xiaoming 正在学习...

class Student:
    # 类属性
    name = 'student'
    age = 0
    subject = []
   # 普通方法
    def study(self, name):
        print(name, '正在学习...') 
s1 = Student()
s1.study('xiaohong')
 

----------------

输出:

xiaohong 正在学习...

类方法

格式:
@classmethod
def 方法名(cls):
    pass

类方法使用@classmethod装饰器

对象方法传入的是self,类方法传入的是cls

类方法可以直接用类调用,或者可以用类的实例(对象)调用

class Dog:
    dog_type = '阿拉斯加'
   def __init__(self, nickname):
        self.name = nickname
   def dog_run(self):
        print('{}在公园里跑.看起来是一只{}.'.format(self.name, self.dog_type))
   @classmethod
    def dog_sit(cls):
        print(cls.dog_type, '很乖,坐下了') 
dog1 = Dog('肉丸')
dog1.dog_type = '小泰迪'
dog1.dog_run()
Dog.dog_sit() 

--------------

输出:

肉丸在公园里跑.看起来是一只小泰迪.

阿拉斯加 很乖,坐下了

静态方法

静态方法使用装饰器@staticmethod

静态方法没有参数

当方法跟类属性和对象属性都没有关系的时候,使用静态方法

支持对象和类名直接调用

class Dog:
    def __init__(self, nickname):
        self.name = nickname
   @staticmethod
    def dog_sit():
        print('很乖,坐下了') 
dog1 = Dog('肉丸')
dog1.dog_sit()
Dog.dog_sit() 
---------------------

输出:

很乖,坐下了

很乖,坐下了

魔术方法

格式:
def __方法名__(self):
    pass

__init__() 构造函数

如果没有__init__。直接利用类向内存申请一个和类一样的空间,给到对象。

如果有__init__。利用类向内存申请一个和类一样空间,内存空间(self)传递给__iniy__,执行__init__的函数。最后将内存空间给到对象。

对象

创建对象

格式:对象名 = 类名()

class Student:
    #类属性
    name = ''
    age = 0
    subject = [] 
xiaoming = Student()

对象属性

当创建了对象时,对象会继承类的属性。获取属性的时候,也是从类中获取属性。

当对默认的类属性赋值后(对象名.属性 = xxxx),属性才会变成对象属性。

class Student:
    # 类属性
    name = 'student'
    age = 0
    subject = [] 
xiaoming = Student()
print('类属性:', xiaoming.name)  # 此时是从类中获取的类属性
xiaoming.name = 'xiaoming'  # 因为赋值了,此时变成了对象属性
print('对象属性:', xiaoming.name) 
-------------

输出:

类属性: student

对象属性: xiaoming

相关文章

精彩推荐