python学习心得3:类和类的实例化

类 定义 通用行为,可以模拟任何东西, 根据 类来创建对象被称为 实例化。每个对象都自动具备这种通用行为,然后可根据需要赋予每个对象独特的个性。 使用面向对象编程 可模拟现实情景。

例如

class Dog():

“”“一次模拟小狗的简单尝试"""

def __init__(self,name,age):

"""初始化属性 name , age"""

self.name = name

self.age = age

def sit(self):

"""模拟小狗被命令时蹲下"""

def roll_over(self):

"""模拟小狗被命令时打滚"""

my_dog = Dog('willie', 6)

print("My dos is " + str(my_dog.age) + " years old.")

在Python中,首字母大写的名称指的是类. 这个类定义中的括号是空的,因为我们要从空白创建这个类。

类中的函数 称为方法,所有有关函数的一切 都适用于方法。唯一重要的差别就是 调用方法的方式。

__init__()是一个特殊的方法, 创建新的实例时,Python都会自动运行它。在这个方法的名称中,开头 和 末尾各有两个划线,这是一种约定,避免Python默认方法 和 普通方法发生名称冲突。

在__init__()方法中,参数self必不可少,还必须位于其他形参的前面。创建实例时,将自动传入实参self. 每个与类相关联的方法调动都自动传递实参self, 它是一个指向实例本身的引用,让实例能够访问类中的属性 和 方法。 self会自动传递,所有实例化的对象,不用传递它。

以self为前缀的变量都可供类中的所有方法使用,还可以通过类的任何实例来访问这些变量.

访问实例的属性,可使用句点表示法。 例如 访问my_dog的属性name的值:

my_dog.name

python先找到实例my_dog, 再查找与这个实力相关联的属性name. 在 Dog类中引用这个属性时,使用的是self.name.

str(my_dog.age)将 my_dog的属性age的值 6 转换为字符串。

再看看自己的做的作业

看看朋友们指出的错误

最后总结一下 出现的知识点

1) 方法的调用一定要有(), r1.describe_restaurant 要改成 r1.describe_restautant(). 我的本意是使用 类Restanrant的方法,利用方法去输出 2 个print语句。

所以直接方法调用即可。

即 print ("Welcome to " + r1.describe_restaurant + ".") 改为 r1.describe_restaurant()

2) 你的方法里是打印,不是返回,所以调用的时候不用print了, 不然print出来多了一个none

3) 直接打印属性 是不用()的,调用 方法是要()

最后的结果

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180523G12Y6800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券