python基础13-类

类:

参考文档:jianshu.com/p/202a289fb2d9

Python3 中类的静态方法、普通方法、类方法

静态方法: 用 @staticmethod 装饰的不带 self 参数的方法叫做静态方法,类的静态方法可以没有参数,可以直接使用类名调用。

普通方法: 默认有个self参数,且只能被对象调用。

类方法: 默认有个 cls 参数,可以被类和对象调用,需要加上 @classmethod 装饰器


class Classname:
    @staticmethod
    def fun():
        print('静态方法')

    @classmethod
    def a(cls):
        print('类方法')

    # 普通方法
    def b(self):
        print('普通方法')



Classname.fun()
Classname.a()
Classname().b()

C = Classname()
C.fun()
C.a()
C.b()




class Dog():
    # 初始化包含 类的属性
    """
    __init()__:每当类Dog 创建新实例 python都会自动运行他
    """
    def __init__(self,name,age):
        self.name = name
        self.age = age

    # 行为 坐
    def sit(self):
        print(self.name.title()  + "is now sitting.")

    # 行为 打滚
    def roll_over(self):
        print(self.name.title() + "rolled over !")

my_dog = Dog("小花",2) # 在类中传入初始化的参数

# 访问属性
print("my dog name is "+ my_dog.name.title()+".")    # 只用了初始化参数
print("my dog is "+ str(my_dog.age)+ " years old .")

# 调用方法
my_dog.sit()      # 调用类里面的方法
my_dog.roll_over()





# * 使用类和实例
class Car():
    def __init__(self,make,model,year):
        self.make = make
        self.model = model
        self.year = year
    def get_desc_name(self):
        long_time = str(self.year) + " " + self.make +" " + self.model  # 调用初始化方法的 参数
        return long_time

my_car = Car("audi","a4",2016)  # 类里面可以直接传 初始化的实参
print(my_car.get_desc_name())



# 统计创建的对象数:
class Tool(object):

    # 使用赋值语句,定义类属性,记录创建工具对象的总数
    count = 0

    def __init__(self, name):
        self.name = name

        # 针对类属性做一个计数+1
        Tool.count += 1


# 创建工具对象
tool1 = Tool("斧头")
tool2 = Tool("榔头")
tool3 = Tool("铁锹")

# 知道使用 Tool 类到底创建了多少个对象?
print("现在创建了 %d 个工具" % Tool.count)



"""
继承:
    编写的类是 另一个现成类的特使版本 --可使用继承
    子类自动继承了父类的 所有属性和方法,同时还可以自己定义自己的属性和方法
    参考文档:https://www.cnblogs.com/feeland/p/4419121.html
"""

案例:

class Person(object):
    def __init__(self,name,sex):
        self.name = name
        self.sex = sex

    def print_title(self):
        if self.sex == "male":
            print("man")
        elif self.sex == "female":
            print("woman")

class Child(Person):                            # Child 继承 Person
    pass

May = Child("May","female")
Peter = Person("Peter","male")

print(May.name,May.sex,Peter.name,Peter.sex)    # 子类继承父类方法及属性
May.print_title()
Peter.print_title()
原文地址:https://www.cnblogs.com/zhuanfang/p/13650508.html