python类、方法、属性

构造方法“__init__()”

与普通方法不同的地方在于,当一个对象被创建后,会立即调用构造方法,该方法在类实例化时会自动调用。

# coding=gbk
#创建一个构造方法
class Foobar:
    def __init__(self):
        self.somevar=42
f=Foobar()
print(f.somevar)
输出:
42

创建一个类

class Dog():
    """一次模拟小狗的简单尝试"""

    def __init__(self,name,age):
        """初始化属性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!!")

方法__init__() 是构造方法,每当你根据Dog 类创建新实例时,Python都会自动运行它。方法__init__() 定义成了包含三个形参:self 、name 和age 。在这个方法的定义中,形参self 必不可少,还必须位于其他形参的前面。每个与类相关联的方法调用都自动传递实参self ,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。创建Dog 实例时,Python将调用Dog 类的方法__init__() 。我们将通过实参向Dog() 传递名字和年龄;self 会自动传递,因此我们不需要传递它。每当我们根据Dog 类创建实例时,都只需给最后两个形参(name 和age )提供值。

根据类创建一个实例

# coding=gbk
class Dog():
    """一次模拟小狗的简单尝试"""

    def __init__(self,name,age):
        """初始化属性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('willie', 6)
print("My dog's name is " + my_dog.name.title() + ".")#访问属性name
print("My dog is " + str(my_dog.age) + " years old.")
my_dog.sit()#调用类中的方法
my_dog.roll_over()

输出:
My dog's name is Willie.
My dog is 6 years old.
Willieis now sitting.
Willierolled over!!

猜你喜欢

转载自blog.csdn.net/qq_38360675/article/details/85018936