Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 27, 2017 00:27:33

Koala
Зарегистрирован: 2015-10-28
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

datetime.now().year как сделать подобную функцию или что-там еще

Доброй ночи всем!

я думал, что знаю, как делать функции в питоне, однако, вот тут странный (для меня) вызов:
(после () еще что-то):

 >>> from datetime import datetime
>>> datetime.now().year
2017
>>> def my():
...     year = 3017
...     print('hello mymy')
...
>>> my().year
hello mymy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'year'
>>>

Как Вы видите, я попытался сделать что-то подобное, но потерпел фиаско.
Объясните мне, как такое делают: типа datetime.now().year - т.е. после now() еще переменная.
Не могу понять. Или скажите где читать/смотреть

Офлайн

#2 Янв. 27, 2017 04:33:37

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

datetime.now().year как сделать подобную функцию или что-там еще

 >>> def my():
...     year = 3017
...     print('hello mymy')

В вашей функции нет return, поэтому она ничего не возвращает. Если быть точнее, она возвращает None. Об этом вам недвузначно намекает стектрейс
 AttributeError: 'NoneType' object has no attribute 'year'



Офлайн

#3 Янв. 27, 2017 05:25:43

scidam
Зарегистрирован: 2016-06-15
Сообщения: 288
Репутация: +  35  -
Профиль   Отправить e-mail  

datetime.now().year как сделать подобную функцию или что-там еще

Koala
Объясните мне, как такое делают: типа datetime.now().year - т.е. после now() еще переменная.

Ваша функция должна вернуть представителя класса, имеющего атрибут year, например:

 class MyDate:
    def __init__(self, day, month, year):
        self.day = day
        self.month = month
        self.year = year
def my():
    year = 3017
    date_instance = MyDate(1, 1, year)
    return date_instance
my().year # будет 3017


Отредактировано scidam (Янв. 27, 2017 05:28:14)

Офлайн

#4 Янв. 27, 2017 09:46:12

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

datetime.now().year как сделать подобную функцию или что-там еще

Люди добрые. Зачем этот “тантрический секс” с датами? Весь прогрессивный мир давно уже использует arrow!!!

Отредактировано 4kpt_IV (Янв. 27, 2017 09:46:23)

Офлайн

#5 Янв. 27, 2017 10:59:33

Koala
Зарегистрирован: 2015-10-28
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

datetime.now().year как сделать подобную функцию или что-там еще

Спасибо всем. И конечно же, я, как и все прогрессивное человечество буду использовать arrow :-)

не хочу быть с регрессивным человечеством. его как-то слишком много стало.

Офлайн

#6 Янв. 27, 2017 11:30:51

4kpt_IV
Зарегистрирован: 2016-01-08
Сообщения: 999
Репутация: +  49  -
Профиль   Отправить e-mail  

datetime.now().year как сделать подобную функцию или что-там еще

Koala
Ай молодца. Я в Вас верю

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version