-
@classmethod
定义类方法书上没讲。
@classmethod def set_localtion(cls, localtion): cls.__localtion = localtion @classmethod def get_localtion(cls): return cls.__localtion
##常用cls表示类本身,cls__localtion相当于类名__localtion
查看全部 -
任务
把Animal类的age、name、localtion定义成私有属性,并定义对应的方法修改和获取他们的值。
?不会了怎么办
参考答案:
class Animal(object): def __init__(self, name, age, localtion): self.__name = name self.__age = age self.__localtion = localtion def set_name(self, name): self.__name = name def get_name(self): return self.__name def set_age(self, age): self.__age = age def get_age(self): return self.__age def set_localtion(self, localtion): self.__localtion =localtion def get_localtion(self): return self.__localtion
#答案没想出来
查看全部 -
2-6~~2-7:
主要再讲公有和私有属性,(属性前加上__,无法从外部访问,但是可以在内部访问)详情可以参考书上p147
查看全部 -
请给 Animal类添加一个类属性 count,每创建一个实例,count 属性就加 1,这样就可以统计出一共创建了多少个 Animal的实例。
#第一次没做出来,可以再试着做一遍
查看全部 -
class Animal(object): pass dog = Animal() cat = Animal() dog.name = 'wangwang' dog.age = 1 cat.name = 'mimi' cat.age = 3
#赋予实列方法,书上没有
查看全部 -
class Animal(object):
pass
dog = Animal()
cat = Animal()
dog.name = 'wangwangwang'
dog.age = 3
dog.sex = 'boy'
cat.name = 'miaomiao'
cat.age = 4
cat.sex = 'girl'
print(dog.name)
print(dog.age)
print(cat.age)
print(cat.name)
查看全部 -
# Enter a code
class Dongwu:
pass
dog=Dongwu()
cat=Dongwu()
print(dog)
print(cat)
print(dog==cat)
查看全部 -
在定义继承类的时候,有几点是需要注意的:
class Student()定义的时候,需要在括号内写明继承的类Person
在__init__()方法,需要调用super(Student, self).__init__(name, gender),来初始化从父类继承过来的属性
查看全部 -
和实例方法不同的是,这里有两点需要特别注意:
类方法需要使用@classmethod来标记为类方法,否则定义的还是实例方法
类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.__localtion 实际上相当于Animal.__localtion。
查看全部 -
和实例方法不同的是,这里有两点需要特别注意:
类方法需要使用@classmethod来标记为类方法,否则定义的还是实例方法
类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.__localtion 实际上相当于Animal.__localtion。
因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
查看全部 -
在外部访问私有属性将会抛出异常,提示没有这个属性。
虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。私有属性是为了保护类或实例属性不被外部污染而设计的。查看全部 -
在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上以下属性:
class Person(object): def __init__(self, name, sex, age): self.name = name self.sex = sex self.age = age
需要注意的是,__init__() 方法的第一个参数必须是 self(也可以用别的名字,但建议使用习惯用法),后续参数则可以自由指定,和定义函数没有任何区别。
定义类后,就可以相应的实例化对象了,需要注意的是,在实例化的时候,需要提供除self以外的所有参数。查看全部 -
创建实例使用类名+(),类似函数调用的形式创建:
class Person(object): pass xiaohong = Person() xiaoming = Person()
查看全部 -
从定义上来讲,Student和Teacher都拥有来自父类Person继承的who()方法,以及自己定义的who()方法。但是在实际调用的时候,会首先查找自身的定义,如果自身有定义,则优先使用自己定义的函数;如果没有定义,则顺着继承链向上找。
查看全部 -
一个实例可以看成它本身的类型,也可以看成它父类的类型。
查看全部
举报